Política de retentativas
Uma entrega tem até 8 tentativas ao longo de cerca de 20 horas, com espera crescente e variação aleatória de ±20%.O que conta como sucesso
- Uma resposta
2xxem até 10 segundos. - Qualquer outra coisa é falha: outro status, timeout ou erro de conexão. A Routa não segue redirecionamentos.
- O corpo da resposta é ignorado. A Routa lê no máximo os primeiros 4 KB.
410 Gone
Uma resposta 410 é tratada como remoção permanente: a entrega é abandonada na hora, sem esgotar as tentativas. Use 410 apenas se você realmente não quer mais receber aquele evento. Outros 4xx (como um 401 temporário da sua camada de autenticação) são retentados normalmente.
Estados de uma entrega
Cada combinação de evento e endpoint é uma entrega (whd_...) com seu próprio estado.
Liste as entregas de um endpoint, filtrando por estado:
attempt_count, next_attempt_at, last_response_status e last_error_code, o que ajuda a entender por que uma entrega falha. As entregas ficam consultáveis por 30 dias.
Reenviar entregas esgotadas
Depois de corrigir o seu endpoint, reenvie o que ficou para trás.- Uma entrega
- Todas de um endpoint
exhausted podem ser reenviadas. Outro estado retorna 409 webhook_delivery_not_replayable.Desativação automática
Para proteger o sistema de gastar capacidade com um endpoint morto, a Routa desativa um endpoint (status: "disabled_by_system") quando ocorre uma das situações:
- 100 falhas consecutivas; ou
- 24 horas sem nenhum sucesso, com pelo menos 20 tentativas de entrega.
POST /v1/webhook_endpoints/{id}/enable. A reativação reenvia em lote todas as entregas esgotadas do endpoint e responde com replayed_count, a quantidade reenviada.
POST /v1/webhook_endpoints/{id}/disable (status: "disabled_by_user"), por exemplo durante uma manutenção.
Status do endpoint
O objeto do endpoint traz
consecutive_failures, last_success_at e last_failure_at para você monitorar a saúde dele.