I'd prefer this to be clearer eg the error would be `user cannot create user via api` etc as the message may say user cannot create user when they can but only via api or web interface - that feels more honest.

It would not make the code much more complicated.