Errors are handled outside the callback