actually exit non-zero if there's a failure