When a Servlet throws an exception, the filter properly reports the exception. However, when the request telemetry is decorated with information from the HttpServletResponse, the response at this time still has response code set to 200.
In the cloud, this shows two bits of telemetry: a request and an exception; but the request is marked successful when it should not.
From my initial analysis, the exception is still "on its way up" through the filter chain. Nothing has indicated to the HttpServletResponse object something has failed. We want to report the result code that the caller ultimately receives. This seems to only be incorrect when the Servlet throws an exception.