I agree, if you have a finite and reasonable number of possible errors, the puppy/colored box idea should work great as long as each different error icon is unique enough (i.e., a puppy icon and a kitten icon would be fine, but I would avoid different types of puppies...the user will remember they saw a puppy, not necessarily what type of puppy).
Other possible ideas would be to just assign a number to your error and make it flash. Flashing gives a sense of urgency and, as long as your list of typical errors is small, the user should be able to recall a flashing number. If you get into the hundreds, this might not work so well.
% APL is a natural extension of assembler language programming; ...and is best for educational purposes. -- A. Perlis