@sentry/[email protected]
Os erros lançados nos processadores de eventos globais são captados pela biblioteca Sentry, iniciando outra captura de erro que, por sua vez, chama o mesmo processador de eventos globais que lançará um erro mais uma vez. Isso se repete por um número desconhecido de vezes (até a pilha estourar, talvez?). O problema é que não há vestígios do erro original, nem quaisquer erros subsequentes lançados pelo processador de evento global com defeito. Obviamente, o Sentry é incapaz de enviar o erro para cima, mas nada é registrado também.
Descobrir que um processador de evento global com defeito estava impedindo que qualquer um de nossos erros fosse relatado levou algum tempo, então seria ótimo se o SDK pudesse detectar e registrar esses erros automaticamente. Até então, eu recomendo agrupar o código de processamento em um bloco try / catch e registrar manualmente os erros:
Sentry.addGlobalEventProcessor(event => {
try {
event.missingProperty.assignment = true
} catch (err) {
console.error('sentry global event processor threw error', err)
}
return event
})
Não consegui fazer o loop conforme descrito, mas posso confirmar que o erro foi engolido (não deveria, pois temos uma grande cláusula catch
em nossa cadeia de promessas 🤔). Vou investigar isso em breve. Obrigado pelo relatório.
@kamilogorek , você começou a examinar esse problema?
@mogelbrod atualmente você obterá um log de depuração quando definir debug: true
e algo falhar.
Acabei de implementar uma solução melhor aqui https://github.com/getsentry/sentry-javascript/pull/2416