error 1312b: you don't even know what you did wrong

Having read Donald Norman's books Design of Everyday Things as well as Living with Complexity, I've grown more aware of poorly designed interfaces and processes in the world around me. In particular, the ignorance of basic human needs by many computer systems is bewildering if you pay attention to it.
As an example, yesterday I went to a convenience store to pick up some vitamins and mouthwash. Since I didn't want to wait in line, I went to a self-checkout machine and scanned my items. I also had a $2 off coupon, which I tried to scan.
Each time I scanned it, the machine coldly said, "The coupon wasn't accepted." There were numerous explanations for why it might not have worked: perhaps the scanner couldn't read the barcode, maybe the coupon had expired, or I might have used the wrong phone number/card. It's even possible that something else was going on due to the hurricanes and loss of power throughout the city.
The machine really lacked any empathy towards the human need to evaluate the result of actions taken and adjust them. I had no feedback on what I had done wrong, and I jumped to the conclusion that I was scanning the coupon incorrectly. I had to ask a store employee why it wasn't working, and she pointed out to me that the coupon was indeed expired. This made me feel a bit stupid, and also wasted time for both of us. 
It would have been simple for the designer of the system to give more lucid error messages when scanning didn't work. The cost of adding a separate error message for each of the different failure modes is minimal, perhaps requiring some translations or slightly reworking the part software that handles errors. Norman points out that oftentimes the people who order systems like these are corporate-types disconnected from the end users, and optimize for parameters like cost rather than usability.
Humans should take care of what humans are good at, not helping tech-savvy customers like myself operate poorly designed systems. Employees at convenience stores should focus on leveraging advantages of having people around, like helping elderly people shop (empathy) or rearranging displays to make them more attractive (aesthetics), rather than wasting their life cleaning up after poor design choices of the designers of machines that are meant to make their work easy and instead make it tedious.