require role with promise, fixed #423