GoogleCloudPlatform / GoogleCloudPlatform/stackdriver-errors-js

Fails to report an Angular `HttpErrorResponse`

Offen
#81 0 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
360
Forks
54
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

## 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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.