I came across this great article by Gunnar Morling and have been wanting to repost this for a while... better late then never.
So what makes a good error message then? To me, it boils down to three pieces of information which should be conveyed by an error message:
Context: What led to the error? What was the code trying to do when it failed?
The error itself: What exactly failed?
Mitigation: What needs to be done in order to overcome the error?
The reason I find this article get is cause its coming from a Software Developer keeping other developers in context. I have worked as a Product Manager & a UX professional for several years now and Error messages is one of those areas which does not get much attention.
Its always at the back of your mind but other important aspects take over and error messages typically get overlooked.
Good error messages are important. When things go wrong, these error messages are the only communication channel between your software and customer. A good error message will allow your customer to recover well or submit a support ticket - and thats $ we are talking about.
The first comment by RossVertizan on this blog also has an important aspect for good error messages:
One thing that I would add is an indication of severity. Personally, I like to have every message preceded with a word which indicates the severity of the message