the problem is none of business with the kibana or browser, just java agent
Steps to reproduce:
- create a spring web project, and create a controller mapping to any http request
- the controller will throw an any custom excpetion, and handle it by spring ExceptionHandler(for example @ControllerAdvise and @ExceptionHandler), and return error message with http status code: 200
- start the http server and invoke the http api, the response is expected (http status code: 200)
but in kibaba, the transaction 's status code is showing as 500.
an issue is related : https://github.com/elastic/apm-agent-java/issues/1036
in my opinion: the code ( ServletTransactionHelper#doOnAfter) change the status to 500 because of the exception, but some exception can be ignore because the application already handled it.
so i think the agent should check if it should be ignore by the CoreConfiguration: ignore_exceptions!