Thanks for this good article.

You may also need to consider what language the end user needs the message in. I have seen too many systems that just pass an English error message from a web service on to a user who does not speak English.

If the web service sends the error message back in the end users language, you should have a short error code before the message text. For example 'E001 username is missing'.

Without a standard code for each error, looking through log files with messages in lots of languages for a problem is horrible, but that is easy compared with trying to program around a response that could be in one of six languages that you do not speak.