Here is a video tutorial giving an overview of the error message problem.
This 9-minute video lays out the main thesis: that a good error message can not be picked from a list of pre-considered error messages. The only technique to produce an error message from a moderately complex system is to combine error strings from different parts of the system.
Blog posts that support this: