Always return Error objects, and provide statusCode on failure