GoogleCloudPlatform / GoogleCloudPlatform/stackdriver-errors-js

Fails to report an Angular `HttpErrorResponse`

Open
#81 0 comments 2 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
360
Forks
54
PR merge metrics
No merged PRs in 30d

Description

## As is

* Using Angular
* Make a service request, throw a 500`HttpErrorResponse`
* Report this error with `StackdriverErrorHandler`
* Get a 400 from the service, error never reported

These errors do not have a stack trace, so the payload sent to the clouderrorreporting api was:

```json
{
"serviceContext": { "service": "my-service" },
"context": {
"httpRequest": {
"userAgent": "Mozilla/5.0 ...",
"url": "http://localhost:3000/app/123"
}
},
"message": "Error extracting stack trace: Error: Cannot parse given Error object\n[object Object]\n (::)"
}
```

The service then responded with:

> 400 - ReportedErrorEvent.context must contain a location unless `message` contain an exception or stacktrace.

## Expected

Errors without a stack would be serialized in a way to maintain as much information as possible.

It is surprising to send "Error extracting stack trace" instead of a message representing the error trying to be reported.

One quick fix I tried to implement was to `JSON.stringify` errors before reporting, those were rejected by the service as "too long".

Overall, would love if the client would do *everything possible* to ensure the error gets reported.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.