We’ve done some research into this, and one of our engineers was able to reproduce the behavior on your application.
It looks the Angular http client is causing problems for same-origin requests. Our agent thinks that the XHR request didn’t finish because the readyState of the XHR request is never set to 4 (done). If the XHR request isn’t finished (defined as the readyState being set to 4) by the time XHR/error harvesting happens, our agent sets the http status of the XHR request to 0.
The Angular http client seems to be taking control of XMLHttpRequest functionality. Our engineer checked xhr.readyState for the XHR requests that have status set to 0 and discovered that xhr.readyState was undefined and other functions in the XHR object were being wrapped by Angular’s http client.
We found two versions of the Angular http client in their documentation, the newer one and the older one. The newer one (common/http) does not have xhr.readyState, which our agent relies on to evaluate whether an XHR request was finished. The older one client (http) does have xhr.readyState.
If you’d be willing to confirm which version of Angular and the HTTP client you’re currently using, we’d really appreciate you sharing that, both for our documentation and for other customers who might be experiencing the same issue.
We’ll be looking into this to determine whether changes to our agent will be needed. In the meantime, we suggest trying the older version of the Angular http client (if you’re currently using the newer version), switching to fetch(), or even not using the Angular http client at all, depending on your use case.