Re-raise errors with throw instead of Promise.reject()