As we all know, users don't read error messages. And, sad to say, this behavior extends to the group of people you would think pay the most attention to error messages, namely, programmers, who are the people who cause your computer to display the error messages!

Today's example comes from an internal programmer's tool which I will call Program Q.

I'm trying to back out an update I made to record 19 of our table (which was entered as transaction 512), but I can't get it to work:

C:\> q backout 512
Transaction opened for record 19 - must reconcile backout

C:\> q commit all
Transaction 520 created for 1 record
Committing transaction 520
Record 19 - must reconcile backout
Unreconciled changes pending - use 'q reconcile' to resolve
Commit failed -- fix problems above and then use 'q commit 520'

What is the problem here, and how do I fix it?

The transaction couldn't be backed out because somebody else made a change to record 19 since your original erroneous update, and the system wants you to reconcile this conflict.

But that's beside the point. The point is that the user here merely saw that there was an error and didn't actually read any of the error messages. There were four error messages, and every single one told him what he needed to do!

C:\> q backout 512
Transaction opened for record 19 - must reconcile backout

C:\> q commit all
Transaction 520 created for 1 record
Committing transaction 520
Record 19 - must reconcile backout
Unreconciled changes pending - use 'q reconcile' to resolve
Commit failed -- fix problems above and then use 'q commit 520'