Make halt_on_error optional