Is what I get for dutifully installing all updates?
Telling me that the install failed twice is nice, but does not hide the fact that I still don’t know why. I feel like I’m playing a guessing game with my 3 year old daughter: “I’m not telling!”
I know that if I go to IT they’ll want to reimage my machine. At first their predilection for reimaging bugged me as I thought more effort should go into figuring out the root cause. But over the years I’ve come to sympathize with their position. Usually after hours of probing you run into a brick wall, an OS bug or some silent failure and without source code there’s no way around it. And figuring out a root cause only helps if there’s some hope that the problem may be fixed. So why bother?
Anyway, I’ve got a Linux CD which could fix the issue once and for all.
When I was a child, my parents would often tell me to repeat what they just told me, since I usually wasn’t paying attention. Now I have to do the same thing with my own daughter. Payback time, it seems.
But this blog entry isn’t about parenting, it’s about error messages.
I was just writing some code and realized that an important rule when writing error messages is to repeat back what the user said. There are many violations of this rule, the first one that comes to mind is this one from Windows:
The system cannot find the path specified.
That error may be comprehensible if you just typed a command, but as part of a script, it will be entirely useless. Obviously, the pathname needs to be displayed (of course, we still don’t know what was being done, or why).
This becomes even more important when a user specified value is modified in some way. For example I had a command line argument which could take a list. After breaking the list apart, I needed to validate the entries in the list. If I found anything invalid I could have simply given the error “invalid parameter”. Useless! Rather, I filtered out the valid values and then printed out the offending ones: “invalid parameters: a,b,c”.
Now, repeat what I just said!
Another nice one from Thunderbird:
The hex number is a nice touch: provide the illusion of being specific and helpful while not actually doing so. The suggestion to contact a system administrator is a good one, as misery loves company.
Here’s one from Chrome:
Cute icon! Funny phrase! I guess those are supposed to distract us from the total uselessness of the error message.
Thunderbird popped this one up one day:
I cannot remember the context, but then I shouldn’t have to! So, basically some unspecified operation failed, for an unknown reason. It’s nice they mentioned the network connection didn’t get cleaned up, though it’s rather useless information since I don’t know what should be done about it, let alone what the impact is. As a programmer I can guess that the dangling network connection is just a minor adminstrative detail which will get cleaned up on the next reboot. But I can imagine my mother getting this error message and being worried that viruses or spammers are going to sneak onto her computer this way.
To kick off my error message “hall of shame” series, I thought I should share my all-time favorite. I got this one many years ago, I was minding my own business and suddenly this pops up in the middle of my screen:
I did not have the presence of mind to take a screenshot back then, so this is “faked” from memory, but all the essentials are here: An empty title bar, so I have no idea which program generated the error, the “unknown error” deepens the mystery and the “ok” button serves as a cruel, taunting punchline.
I never figured out which program issued this error, everything seemed to continue normally. Great mysteries, indeed.