@sentry/[email protected]
グローバルイベントプロセッサでスローされたエラーは、Sentry libによって取得され、別のエラーキャプチャが開始されます。このキャプチャは、同じグローバルイベントプロセッサを呼び出して、もう一度エラーをスローします。 これは未知の回数繰り返されます(おそらくスタックがオーバーフローするまで?)。 問題は、元のエラーの痕跡がなく、障害のあるグローバルイベントプロセッサによってスローされた後続のエラーがないことです。 セントリーは明らかにエラーをアップストリームに送信できませんが、何もログに記録されません。
障害のあるグローバルイベントプロセッサがエラーの報告を妨げていることを発見するには時間がかかるため、SDKがこれらのエラーを自動的に検出してログに記録できれば素晴らしいと思います。 それまでは、処理コードをtry / catchブロックでラップし、手動でエラーをログに記録することをお勧めします。
Sentry.addGlobalEventProcessor(event => {
try {
event.missingProperty.assignment = true
} catch (err) {
console.error('sentry global event processor threw error', err)
}
return event
})
説明されているようにループできませんでしたが、エラーが飲み込まれていることを確認できます(promiseチェーンに大きなcatch
句があるため、ループしないでください🤔)。 すぐに調査します。 レポートをありがとう。
@kamilogorekこの問題を調査することに
@mogelbrodは現在、 debug: true
を設定して何かが失敗すると、デバッグログを取得します。
ここに実装されたより良いソリューションhttps://github.com/getsentry/sentry-javascript/pull/2416