No one really had anything to offer here, but I thought I'd post a follow up because I did eventually find the problem on my own.
What I discovered is that the code that called the external application was using a TRY...CATCH...FINALLY block to trap errors. Because the TRY structure was in effect, the global ON ERROR routine was not executed. When I removed the TRY block from the calling routine, the ON ERROR routine began to execute.
I still cannot explain though why the TRY block did not display the error itself. My best guess (and it's only a guess) is that, because the code was in a separate executable, an exception object was not created. Any thoughts?
John Groft
Consultant
Computer Task Group, Inc.