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.
| Classe | 4xx/5xx, Códigos não oficiais (nginx, Cloudflare) |
|---|---|
| Definido em | Cloudflare docs: Error 524 |
| Pode ir para o cache por padrão | Só 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 pedido | Com cuidado: a origem pode terminar o trabalho mesmo assim, e repetir um POST pode executá-lo duas vezes |
| Cabeçalhos relevantes |
|
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ê.
# 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 fieldCostuma 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.