Do we ever expect reason to be None? If not, we should remove the Option.

If yes, I think we should remove the caller to always give it a reason (even in the case of executor failures).