RequestHandler no longer throw but return future with error