Sentry-javascript: UnhandledRejection: rejeição de promessa sem erro capturada com o valor: Timeout

Criado em 25 mar. 2020  ·  14Comentários  ·  Fonte: getsentry/sentry-javascript

Pacote + Versão

@sentry/[email protected]

Descrição

Estamos recebendo um grande volume de exceções que seguem a mesma assinatura. Eles ocorrem em todas as páginas e em todos os tipos de lugares, aparentemente sem nenhum padrão discernível. Ocorre em todos os navegadores com frequência quase igual ao uso.

UnhandledRejection
Rejeição de promessa sem erro capturada com o valor: Tempo limite

Em todos os casos, a exceção está ausente. Não há rastreamento de pilha ou informações adicionais.

Tenho certeza de que isso se origina de um código de terceiros, mas sem mais informações para continuar, não fui capaz de definir isso.

Estou abrindo isso como um bug porque parece que o Sentry deveria relatar informações adicionais para ajudar a localizar a origem do erro.

Há um problema existente para isso que foi resolvido sem qualquer resolução: https://github.com/getsentry/sentry-javascript/issues/2210

Discussion

Comentários muito úteis

O problema está exatamente aí: https://www.gstatic.com/recaptcha/releases/P6KLRNy7h3K160ZmYNUOAce7/recaptcha__en.js

c.reject("Timeout ("+y+")")

ou

H((vn.delete(P),"Timeout")

tl; dr - eles rejeitam com um valor primitivo, mas deveriam ser new Error("timeout") .

Nesse caso, a sua melhor solução até que eles consertem é ignorar esse tipo de erro.

Sentry.init({
  beforeSend(event, hint) {
    if (hint.originalException === "Timeout") return null;
    return event;
  }
});

Todos 14 comentários

Tivemos vários problemas como esse e os fixamos no código de recaptcha do Google. É muito fragmentado, então nos livramos do recaptcha e os erros desapareceram

@ JustFly1984 Obrigado pela confirmação. Recaptcha é meu principal suspeito. Infelizmente não podemos removê-lo. Parece que ele não desmonta corretamente. Ainda parece que devemos ser capazes de obter mais informações sobre a exceção.

Eu falhei em um problema no rastreador de bugs do google, mas eles não fornecem uma folha

@ JustFly1984 Sim. Esse é o Google para você. Nenhuma folha fornecida.

O problema está exatamente aí: https://www.gstatic.com/recaptcha/releases/P6KLRNy7h3K160ZmYNUOAce7/recaptcha__en.js

c.reject("Timeout ("+y+")")

ou

H((vn.delete(P),"Timeout")

tl; dr - eles rejeitam com um valor primitivo, mas deveriam ser new Error("timeout") .

Nesse caso, a sua melhor solução até que eles consertem é ignorar esse tipo de erro.

Sentry.init({
  beforeSend(event, hint) {
    if (hint.originalException === "Timeout") return null;
    return event;
  }
});

@kamilogorek Obrigado. Interessado em por que você filtraria isso em beforeSend no cliente em vez de apenas ignorar no painel?

Porque esse erro é muito genérico. Muito fácil obter uma correspondência falsa positiva.
Além disso, nunca vi exatamente esse erro Timeout antes: D

@kamilogorek Sim. Acho que minha preocupação é que filtrá-lo no cliente pode acabar mascarando erros importantes. Pelo menos se você ignorá-lo no painel, você ainda terá os dados armazenados.

Os eventos filtrados por

@kamilogorek Ah. Eu não tinha considerado a cota. Obrigado por esclarecer.

Alguém sabe como esse tempo limite afeta os usuários finais?

Fechando o problema, pois parece que o problema original foi parcialmente resolvido ou há uma solução funcionando. Eu preferiria que alguém criasse um novo problema com uma nova descrição, se ainda for um problema.
Por favor, não hesite em me enviar um ping se ainda for relevante, e terei o prazer de reabrir e trabalhar nisso.
Felicidades!

@kamilogorek, então esse problema de tempo limite não é afetado pelos usuários finais e é uma boa solução ignorar este?

Depende de como sua base de código está vinculada ao ReCaptcha SDK, mas eu diria que, em geral, na maioria dos casos sim, isso não deve afetar o resultado final.

Esta página foi útil?
0 / 5 - 0 avaliações