Caso · INV-0052
Oito minutos de imagens quebradas, e cada screenshot da demo virou um 504.
Rodrigo Lima estava no meio de uma demo com um prospect quando todo .webp da página virou ícone quebrado. O CDN parecia saudável. O CauseFlow encontrou o teto real: um cold start do Lambda que consumiu 3.098 ms de um orçamento de 5.000 ms — sobrando zero tempo para os fetches das imagens.
O Relógio de Orçamento do Lambda
Cada requisição de otimização de imagem tem um orçamento de 5.000 ms. Um cold start consumiu 3.098 ms antes de um único pixel ser buscado.
Matemática do Cold Start
Três fetches de imagem dispararam concorrentes no instante em que o Lambda inicializou — os três bateram direto na parede do orçamento.
INIT_DURATION 3098 ms + fetch 2500 ms ≈ 5598 ms > orçamento de 5000 ms → Timeout
Hipótese do CloudFront — Descartada
O primeiro instinto do time foi CDN. As métricas do CloudFront não mostraram anomalias — taxa de cache hit normal, sem erros de origem reportados. O problema estava upstream do CDN, inteiramente.
CacheHitRate: 97.3% ← normalOriginLatency: n/a ← sem erros de origem5xxErrorRate: 0.00% ← o CloudFront em si está saudávelConclusão: o problema está upstream do CDN.
Assim que uma instância quente do Lambda passou a atender as requisições seguintes, o overhead do INIT_START desapareceu — imagens servidas em 312 ms. Auto-resolução clássica de cold start.
Diff de Logs de Auto-Recuperação
INIT_START Runtime: nodejs:20.v37initDuration: 3098.74 msfetch dashboard-hero.webp → TimeoutErrorfetch test-flow-builder.webp → TimeoutErrorfetch results-panel.webp → TimeoutError→ Retornando 504 ao CloudFront
START RequestId: b2c3d4e5fetch dashboard-hero.webp → 200 (312 ms)fetch test-flow-builder.webp → 200 (289 ms)fetch results-panel.webp → 200 (301 ms)→ status: 200 billed: 847 ms
Três Caminhos Possíveis
O CauseFlow mostra as opções. Seu time decide.
Provisioned Concurrency
Mantém uma instância Lambda sempre quente. Elimina cold starts no horário comercial. Custo: ~$15–20/mês por instância quente.
Dividir o Image Optimizer
Um Lambda por tipo de imagem reduz o payload de init e a duração do cold start. Mais infra para manter.
Aumentar o Timeout
Sobe o timeout do Lambda para 10 s — ganha fôlego no cold start. Não previne. A latência degrada para o usuário final.
Causa Raiz
A função WebsiteImageOptimizerFunction teve cold start de 3.098 ms — 62% do orçamento total de 5.000 ms — deixando apenas 1.902 ms para três fetches concorrentes de .webp que precisavam de ~2.500 ms cada. Os três deram timeout, o CloudFront recebeu 504, e o navegador exibiu imagens quebradas pelos ~8 minutos até uma instância quente ficar disponível.
Pare de caçar logs.
Comece a entregar produto.
Conecte sua stack em minutos e investigue incidentes reais na sua infra. Sem contrato, sem cartão.