Sentry-javascript: Los errores lanzados en globalEventProcessors se ignoran silenciosamente

Creado en 22 ago. 2019  ·  3Comentarios  ·  Fuente: getsentry/sentry-javascript

Paquete + Versión

@sentry/[email protected]

Descripción

Los errores lanzados en los procesadores de eventos globales son detectados por Sentry lib, iniciando otra captura de errores que a su vez llama al mismo procesador de eventos global que arrojará un error una vez más. Esto se repite un número desconocido de veces (¿hasta que tal vez la pila se desborde?). El problema es que no hay rastro del error original, ni errores posteriores arrojados por el procesador de eventos global defectuoso. Es obvio que Sentry no puede enviar el error en sentido ascendente, pero tampoco se registra nada.

Descubrir que un procesador de eventos global defectuoso estaba impidiendo que se informara cualquiera de nuestros errores tomó algún tiempo, por lo que sería genial si el SDK pudiera detectar y registrar estos errores automáticamente. Hasta entonces, recomiendo envolver el código de procesamiento en un bloque try / catch y registrar manualmente los errores:

Sentry.addGlobalEventProcessor(event => {
  try {
    event.missingProperty.assignment = true
  } catch (err) {
    console.error('sentry global event processor threw error', err)
  }
  return event
})

Confirmed Bug

Todos 3 comentarios

No pude repetirlo como se describe, sin embargo, puedo confirmar que el error se tragó (no debería, ya que tenemos una gran cláusula catch en nuestra cadena de promesas 🤔). Lo investigaré pronto. Gracias por el informe.

@kamilogorek, ¿te

@mogelbrod actualmente obtendrá un registro de depuración cuando configure debug: true y algo falle.
Acabo de implementar una mejor solución aquí https://github.com/getsentry/sentry-javascript/pull/2416

¿Fue útil esta página
0 / 5 - 0 calificaciones