Cascading errors always yield knowledge of some sort, whether it is about your capacity to perform corrective maintenance or showing the difference between a production system and a development system. I recently learned about both aspects.
On one hand I learned that mySQL in a microcomputing environment returns an error when you try to stuff data into a key that is greater then the key length, whereas in an Enterprise production environment it truncates the data to the key length and happily sails along.
On the other hand I would love to lay blame on PHP, for its lack of support for hierarchies that have more than two layers. I mean a supervisory class can extend a kernel class, but user classes cannot extend supervisoyr ones. This left me muddling around with supervisory classes so different modules under the same supervision, became adversely affected when a supervisor was enhanced. Mind you the two layer paradyne works well on Unix which has only root and User.
So when I enhanced a supervisory attribute by giving it more meaning for use in one module the enhancement was inappropriate in another setting, and an error occurred when keying it into the development database. It was a small change for that supervisory class, but I did not move that particular change to the production site along with other enhancements. The whole system worked in production because the Enterprise mySQL had snipped the excess length from the key. On first blush I was happy with production but the system was choking, and then I caught on to my own lack of clear mental modelling!
So beware of truncated mySQL keys.
Have a look at the production which is at http://www.wyc3.com/diction.php. It does English text markup to allow easier reading and a better understanding of what is in the Text. It is about 23% complete.