This only occurs when there's an overridden ExceptionReport page, and it contains a Form. Presumably, an app that redirects to another application page instead of ExceptionReport could also be affected.
Form uses RequestGlobals.activePageName to fire an event on the active page; in an error, that is often the page that could not be loaded. This results in another exception and a 500 response to the user. Very hard to track down.
This could be solved by changing some code to update the active page name just as the response starts to render; this would ensure that the Form is able to communicate with the correct (rendering) page.
Also, the Form should be more capable of dealing with no active page (RequestGlobals.activePageName is null).