Raven Sentry не работает в последней версии Angular 4
Я создаю приложение с использованием Angular 4 и использую Sentry в качестве платформы для удаленной регистрации.
Проблема в том, что сегодня я решил обновить свои пакеты до их последних версий, и теперь Sentry ломает все мое приложение.
Вот мой код:
Raven.config(environment.ravenUrl).install();
export class RavenErrorHandler implements ErrorHandler {
handleError(err: any): void {
Raven.captureException(err);
}
}
@NgModule({
declarations: [
// My components
],
imports: [
BrowserModule,
ReactiveFormsModule,
HttpModule,
AppRoutingModule,
NgbModule.forRoot(),
StoreModule.forRoot({
orders: ordersReducer,
login: loginReducer,
routerReducer: routerReducer
}),
StoreRouterConnectingModule,
EffectsModule.forRoot([
OrderEffect,
LoginEffect
]),
!environment.production ? StoreDevtoolsModule.instrument() : [],
PerfectScrollbarModule.forRoot(PERFECT_SCROLLBAR_CONFIG)
],
providers: [
{ provide: ErrorHandler, useClass: RavenErrorHandler }
],
bootstrap: [AppComponent],
})
export class AppModule { }
Как вы можете видеть, я просто следовал документации Sentry о том, как установить его на Angular.
Я сделал некоторые проверки в коде, и я увидел, что Raven.config(environment.ravenUrl).install();
если я удалю этот вызов, ошибка исчезнет, но я не хочу этого делать.
В Google Chrome ошибка такова:
zone.js:195 Uncaught RangeError: Maximum call stack size exceeded
at http://localhost:4200/polyfills.bundle.js:5303:31
at XMLHttpRequest.proto.(anonymous function) (http://localhost:4200/polyfills.bundle.js:3819:24)
at XMLHttpRequest.open (http://localhost:4200/vendor.bundle.js:17409:37)
at Raven._makeRequest (http://localhost:4200/vendor.bundle.js:18090:17)
at Raven._sendProcessedPayload (http://localhost:4200/vendor.bundle.js:18014:56)
at Raven._send (http://localhost:4200/vendor.bundle.js:17956:22)
at Raven._processException (http://localhost:4200/vendor.bundle.js:17730:14)
at Raven._handleStackInfo (http://localhost:4200/vendor.bundle.js:17636:14)
at Raven.captureException (http://localhost:4200/vendor.bundle.js:16774:18)
at XMLHttpRequest.wrapped (http://localhost:4200/vendor.bundle.js:16710:22)
at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.bundle.js:2970:31)
at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask (http://localhost:4200/polyfills.bundle.js:2737:47)
at ZoneTask.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (http://localhost:4200/polyfills.bundle.js:3044:34)
at invokeTask (http://localhost:4200/polyfills.bundle.js:3972:14)
at XMLHttpRequest.globalZoneAwareCallback (http://localhost:4200/polyfills.bundle.js:3990:17)
at http://localhost:4200/polyfills.bundle.js:5303:31
at XMLHttpRequest.proto.(anonymous function) (http://localhost:4200/polyfills.bundle.js:3819:24)
at XMLHttpRequest.open (http://localhost:4200/vendor.bundle.js:17409:37)
at Raven._makeRequest (http://localhost:4200/vendor.bundle.js:18090:17)
at Raven._sendProcessedPayload (http://localhost:4200/vendor.bundle.js:18014:56)
at Raven._send (http://localhost:4200/vendor.bundle.js:17956:22)
at Raven._processException (http://localhost:4200/vendor.bundle.js:17730:14)
at Raven._handleStackInfo (http://localhost:4200/vendor.bundle.js:17636:14)
at Raven.captureException (http://localhost:4200/vendor.bundle.js:16774:18)
at XMLHttpRequest.wrapped (http://localhost:4200/vendor.bundle.js:16710:22)
at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.bundle.js:2970:31)
at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask (http://localhost:4200/polyfills.bundle.js:2737:47)
at ZoneTask.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (http://localhost:4200/polyfills.bundle.js:3044:34)
at invokeTask (http://localhost:4200/polyfills.bundle.js:3972:14)
at XMLHttpRequest.globalZoneAwareCallback (http://localhost:4200/polyfills.bundle.js:3990:17)
at http://localhost:4200/polyfills.bundle.js:5303:31
at XMLHttpRequest.proto.(anonymous function) (http://localhost:4200/polyfills.bundle.js:3819:24)
at XMLHttpRequest.open (http://localhost:4200/vendor.bundle.js:17409:37)
at Raven._makeRequest (http://localhost:4200/vendor.bundle.js:18090:17)
at Raven._sendProcessedPayload (http://localhost:4200/vendor.bundle.js:18014:56)
at Raven._send (http://localhost:4200/vendor.bundle.js:17956:22)
at Raven._processException (http://localhost:4200/vendor.bundle.js:17730:14)
at Raven._handleStackInfo (http://localhost:4200/vendor.bundle.js:17636:14)
at Raven.captureException (http://localhost:4200/vendor.bundle.js:16774:18)
at XMLHttpRequest.wrapped (http://localhost:4200/vendor.bundle.js:16710:22)
at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.bundle.js:2970:31)
at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask (http://localhost:4200/polyfills.bundle.js:2737:47)
at ZoneTask.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (http://localhost:4200/polyfills.bundle.js:3044:34)
at invokeTask (http://localhost:4200/polyfills.bundle.js:3972:14)
at XMLHttpRequest.globalZoneAwareCallback (http://localhost:4200/polyfills.bundle.js:3990:17)
at http://localhost:4200/polyfills.bundle.js:5303:31
at XMLHttpRequest.proto.(anonymous function) (http://localhost:4200/polyfills.bundle.js:3819:24)
at XMLHttpRequest.open (http://localhost:4200/vendor.bundle.js:17409:37)
at Raven._makeRequest (http://localhost:4200/vendor.bundle.js:18090:17)
at Raven._sendProcessedPayload (http://localhost:4200/vendor.bundle.js:18014:56)
А в Firefox я просто получаю сообщение о том, что достиг максимального предела рекурсии.
Эта ошибка просто происходит в бесконечном цикле, поэтому я могу получить сотни таких в секунду.
Кто-нибудь еще испытывал это? Обратите внимание, что я использую Angular 4.4.2 и последнюю версию Angular CLI (1.4.2).
ОБНОВИТЬ
Я также обнаружил эту ошибку в Chrome, которая происходит несколько раз, прежде чем ошибка Максимальный размер стека вызовов превысила:
zone.js:195 Uncaught <failed to convert exception to string>
webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask @ zone.js:195
webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:499
invokeTask @ zone.js:1427
globalZoneAwareCallback @ zone.js:1445
(anonymous) @ zone.js:2758
proto.(anonymous function) @ zone.js:1274
(anonymous) @ raven.js:1023
_makeRequest @ raven.js:1704
_sendProcessedPayload @ raven.js:1628
_send @ raven.js:1570
_processException @ raven.js:1344
_handleStackInfo @ raven.js:1250
captureException @ raven.js:388
wrapped @ raven.js:324
webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:425
webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask @ zone.js:192
webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask @ zone.js:499
invokeTask @ zone.js:1427
globalZoneAwareCallback @ zone.js:1445
(anonymous) @ zone.js:2758
proto.(anonymous function) @ zone.js:1274
(anonymous) @ raven.js:1023
_makeRequest @ raven.js:1704
_sendProcessedPayload @ raven.js:1628
_send @ raven.js:1570
_processException @ raven.js:1344
_handleStackInfo @ raven.js:1250
captureException @ raven.js:388
wrapped @ raven.js:324
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
wrapped @ raven.js:321
wrapFn @ zone.js:1075
1 ответ
Это проблема на стороне Zone.js, которая, к счастью, уже решена (еще не опубликована), пожалуйста, прочтите подробности здесь https://github.com/getsentry/raven-js/issues/1016