ControllerError with error_detail guaranteed to be present. The SDK's
internal controllerError constructor always populates it, so in practice
every error returned by the dispatcher satisfies this narrower type —
returning it lets callers assert on detail without ! or ?..
ControllerErrorwitherror_detailguaranteed to be present. The SDK's internalcontrollerErrorconstructor always populates it, so in practice every error returned by the dispatcher satisfies this narrower type — returning it lets callers assert on detail without!or?..