Skip to content

Código de status HTTP · Não oficial, usado por Cloudflare

Erro 524 A Timeout Occurred

O erro 524 significa que a Cloudflare conectou na origem, enviou o pedido e não recebeu resposta HTTP dentro do Proxy Read Timeout, que é de 125 segundos por padrão. A causa comum é um pedido demorado, como um relatório, exportação ou consulta pesada, ou uma origem sobrecarregada demais para responder a tempo.

Dados sobre este código de status
Classe4xx/5xx, Códigos não oficiais (nginx, Cloudflare)
Definido emCloudflare docs: Error 524
Pode ir para o cache por padrãoSó com Cache-Control ou Expires explícitos; os TTLs padrão da borda da Cloudflare só cobrem 200, 206, 301, 302, 303, 404 e 410, então um 52x não fica em cache por padrão
Pode repetir o pedidoCom cuidado: a origem pode terminar o trabalho mesmo assim, e repetir um POST pode executá-lo duas vezes
Cabeçalhos relevantes
  • CF-RAY: use para achar o pedido lento nos logs da origem

O que significa o 524

A documentação atual da Cloudflare define o Proxy Read Timeout padrão em 125 segundos; artigos antigos ainda falam em 100. O 524 também pode vir do Proxy Write Timeout de 30 segundos, quando a Cloudflare não consegue terminar de enviar o corpo do pedido para a origem, e esse não é ajustável.

O timeout faz a Cloudflare parar de esperar, não o seu servidor parar de trabalhar. A origem geralmente continua processando e registra um 200 normal (ou um 499 no nginx quando percebe a conexão fechada), então a tarefa pode terminar mesmo com o visitante vendo erro. Por isso repetir às cegas pedidos não idempotentes depois de um 524 é arriscado.

Zonas Enterprise podem subir o limite até 6.000 segundos, para a zona toda pelo ajuste proxy_read_timeout ou por caminho com uma Cache Rule. Os demais planos precisam deixar o pedido mais rápido, tirá-lo do hostname com proxy ou transformá-lo em tarefa em segundo plano.

Causas comuns

Se você está visitando o site

  • A página ou ação pedida está demorando demais para o servidor do site produzir. Enviar de novo pode repetir a ação, como um pedido de compra ou um upload.

Se você administra o servidor

  • Endpoints que fazem trabalho pesado na hora: exportações CSV ou PDF, importações em massa, relatórios, chamadas a APIs externas lentas.
  • Uma consulta lenta ou travada no banco segurando o pedido além de 125 segundos.
  • Uma origem sobrecarregada em que os pedidos esperam na fila por um worker.
  • Uploads grandes para uma origem lenta estourando o timeout de escrita de 30 segundos.

Como resolver

Se você está visitando o site

  • Antes de repetir uma compra ou formulário, verifique se ele foi concluído (um e-mail, o histórico da sua conta). Para páginas comuns, recarregue mais tarde.

Se você administra o servidor

  • Encontre os endpoints lentos: registre a duração dos pedidos na origem, ou use o Origin Analytics e olhe os tempos P95 próximos do limite.
  • Leve trabalhos longos para uma fila: responda 202 Accepted com um ID na hora e deixe o cliente consultar uma URL de status ou receber um webhook.
  • Sirva endpoints demorados por um hostname só DNS (nuvem cinza), como a Cloudflare sugere, para o timeout do proxy não se aplicar.
  • Otimize o trabalho em si: índices para consultas lentas, paginação nas exportações, timeouts nas chamadas externas.
  • No Enterprise, aumente o proxy_read_timeout da zona ou por caminho com uma Cache Rule.

Como diagnosticar o 524

Quem gera este código é a Cloudflare, na borda, quando não consegue uma resposta utilizável da sua origem; o seu servidor nunca o envia. Os comandos abaixo falam direto com a origem, sem passar pela Cloudflare, para você ver o que ela vê.

Terminal
# How long does the origin take on its own? (bypasses Cloudflare)
curl -s -o /dev/null --resolve example.com:443:ORIGIN_IP \
  -w 'connect: %{time_connect}s  first byte: %{time_starttransfer}s  total: %{time_total}s\n' \
  https://example.com/reports/export

# nginx on the origin: requests that ran longer than 125 s
awk '$NF+0 > 125' /var/log/nginx/access.log   # with $request_time as the last field

Costuma ser confundido com

524 vs 504
Se um proxy reverso na sua origem estoura o tempo antes (o proxy_read_timeout do nginx é 60 s por padrão), o visitante recebe o 504 desse proxy; o 524 só aparece quando acaba a espera de 125 segundos da própria Cloudflare.
524 vs 522
O 522 é falha ao conectar; o 524 significa que a conexão funcionou e a resposta foi lenta demais.
524 vs 499
Um 524 na Cloudflare costuma aparecer como 499 no log do nginx da origem, porque a Cloudflare desliga a conexão com o nginx no mesmo instante.

Perguntas frequentes

Qual o timeout da Cloudflare no erro 524?
O Proxy Read Timeout padrão é de 125 segundos, segundo a documentação atual da Cloudflare. Também existe um Proxy Write Timeout fixo de 30 segundos para enviar dados à origem.
Dá para aumentar o timeout do erro 524?
Só no plano Enterprise, até 6.000 segundos, para a zona toda pelo ajuste proxy_read_timeout ou por caminho com uma Cache Rule. Nos outros planos, deixe o pedido mais rápido, use tarefa em segundo plano ou sirva esse caminho por um hostname só DNS.
Meu pedido foi processado mesmo com o erro 524?
Provavelmente sim. A Cloudflare parou de esperar, mas a origem costuma continuar processando. Confira os logs ou os dados gerados antes de repetir algo que cria registros ou faz cobrança.
Como evitar o 524 em exportações longas?
Inicie a exportação num worker em segundo plano, responda 202 Accepted com um ID e deixe o cliente consultar até o link de download ficar pronto. O pedido HTTP passa a levar milissegundos, qualquer que seja o tamanho da exportação.

Revisado em por Arielton Oberek.