Turns out that the exit status is returned in $?, not as the return value of run(). So our error checking was completely bogus.
Turns out that the exit status is returned in $?, not as the return value of run(). So our error checking was completely bogus.