Erro 408 - Read Timed Out

O que fazer quando vejo este erro nos logs de Webhooks do Asaas?

O que significa

O erro 408 - Read Timed Out nos logs de Webhooks indica que a conexão entre o Asaas e o seu servidor foi estabelecida corretamente, porém sua aplicação não respondeu dentro do tempo máximo esperado.

O evento foi enviado, mas o Asaas não recebeu uma confirmação de sucesso em tempo hábil.


Como funciona o timeout do Asaas

Após enviar o webhook, o Asaas aguarda até 10 segundos pela resposta do seu servidor.

Se nesse período não for recebido um retorno HTTP 200, a tentativa é considerada uma falha e o evento entra no fluxo normal de retentativas.

Caso ocorram 15 falhas consecutivas, a fila de Webhooks será interrompida.

📘

Importante

O Asaas considera o webhook processado com sucesso somente quando recebe HTTP 200.


Quando esse erro acontece

As causas mais comuns são:

  • processamento excessivamente demorado;
  • consultas lentas ao banco de dados;
  • chamadas para APIs externas durante o processamento;
  • deadlocks ou filas internas congestionadas;
  • alto consumo de CPU ou memória;
  • indisponibilidade parcial da aplicação;
  • processamento síncrono de tarefas pesadas.

Impacto na integração

Enquanto o endpoint continuar excedendo o tempo limite:

  • os eventos serão reenviados automaticamente;
  • a fila poderá sofrer penalização;
  • após 15 falhas consecutivas, a fila será interrompida;
  • novos eventos continuarão sendo acumulados;
  • os eventos permanecem armazenados por até 14 dias;
  • eventos não processados após esse período serão excluídos permanentemente.

Por isso, é importante reduzir o tempo de resposta do endpoint.


Exemplo de cenário comum

Fluxo problemático:

Asaas
↓
POST webhook
↓
Aplicação recebe evento
↓
Consulta banco
↓
Chama API externa
↓
Gera relatório
↓
Envia e-mail
↓
Retorna HTTP 200 após 15 segundos
↓
Read Timed Out

Embora a aplicação eventualmente responda, o Asaas já terá encerrado a conexão e considerado a tentativa como falha.


Estratégia recomendada

A melhor prática é responder imediatamente ao Asaas e processar as operações mais demoradas em segundo plano.

Fluxo recomendado:

Asaas
↓
POST webhook
↓
Salvar evento
↓
Retornar HTTP 200 imediatamente
↓
Processar em fila assíncrona
↓
Executar regras de negócio

Dessa forma, o tempo de resposta permanece baixo e a integração fica mais resiliente.


Como resolver

1. Medir o tempo de resposta do endpoint

Verifique quanto tempo sua aplicação está levando para responder.

O ideal é que a resposta seja enviada em poucos milissegundos.


2. Evitar processamento pesado no webhook

Evite executar:

  • consultas demoradas;
  • chamadas para APIs de terceiros;
  • geração de arquivos;
  • envio de e-mails;
  • tarefas complexas.

Essas operações podem ser realizadas posteriormente através de filas assíncronas.


3. Implementar processamento assíncrono

O webhook deve:

  1. Receber o evento.
  2. Persistir os dados necessários.
  3. Retornar HTTP 200.
  4. Processar a lógica posteriormente.

4. Monitorar a aplicação

Verifique:

  • utilização de CPU;
  • consumo de memória;
  • tempo de resposta do banco de dados;
  • lentidão de APIs externas;
  • logs do servidor.

Boas práticas

  • responder rapidamente ao webhook;
  • retornar HTTP 200 assim que possível;
  • utilizar filas assíncronas;
  • implementar idempotência;
  • registrar logs do processamento;
  • monitorar tempo médio de resposta;
  • evitar dependência direta de serviços externos durante o recebimento do evento.

Como validar se funcionou

Após os ajustes:

  1. Reative a fila de Webhooks.
  2. Gere um novo evento.
  3. Consulte os logs.

Se corrigido:

  • o erro 408 deixará de ocorrer;
  • os eventos voltarão a ser entregues normalmente;
  • a fila será processada em ordem cronológica.

Erros comuns

  • responder somente após finalizar toda a lógica da aplicação;
  • esperar resposta de APIs externas;
  • realizar consultas pesadas ao banco;
  • gerar arquivos ou PDFs antes de retornar o HTTP 200;
  • confundir processamento do evento com confirmação do recebimento.

Conteúdos relacionados