breaking before needs to return error to the OS