rpc handler must return a promise