In my previous post I complained about people not using the message statement to output error messages. But sometimes Where-used does indeed fail because it is not up-to-date.
A little known transaction (at least I hardly read about it) comes to help: CODE_SCANNER.
It allows you to input a package and a search string and will find you all lines of code that contain that string.
Regarding our message problem: If you know your message is called in a custom development, simply put Z* for package and the message number as search string and you'll be lucky in most cases.
But it of course works for anything else: Function module names, database tables etc.
Happy scanning!