GoogleCloudPlatform / GoogleCloudPlatform/stackdriver-errors-js
Fails to report an Angular `HttpErrorResponse`
- 主要语言
- JavaScript
- 星标
- 360
- 派生
- 54
- PR 合并指标
- 30 天内没有已合并 PR
描述
## 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.
贡献指南
评估
这个 Issue 还没有评估数据。