GoogleCloudPlatform / GoogleCloudPlatform/stackdriver-errors-js
Fails to report an Angular `HttpErrorResponse`
- 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
Bewertung
Dieses Issue wurde noch nicht bewertet.