exit with non zero on error