
GitHub explica apagão causado por autoscaling no Istio
O incidente
Em 17 de agosto de 2026, o GitHub.com enfrentou uma interrupção de 7 horas e 47 minutos (13:28–21:15 UTC), com erros elevados e latência em Issues, Pull Requests, APIs, Actions e Copilot. No pico, as taxas de erro em web e API ficaram em torno de 20%, enquanto downloads de arquivo e conteúdo bruto de repositórios chegaram a aproximadamente 50% de erro. Autenticação SAML/OIDC, SCIM e Team Sync também foram afetados, assim como workflows de Actions em GHEC com Data Residency que dependem de definições públicas hospedadas no GitHub.com.
Causa raiz
A causa imediata foi saturação de rede nos balanceadores de carga da região Central US, provocada por um pico inédito de tráfego. A origem do pico: um pod sidecar do Istio atingiu seus limites de concorrência e não conseguiu escalar automaticamente porque a política de autoscaling estava configurada para observar o serviço hospedeiro, mas não os limites do sidecar. Uma falha se propagou em cascata até que quatro nós HAProxy esgotaram seus limites de fluxo, degradando o caminho de autenticação do gateway e causando latência e falhas generalizadas. A lógica de retry otimista agravou a situação ao sobrecarregar os balanceadores internos.
Recuperação e efeito cascata no Copilot
Pausar o HAProxy nos nós afetados produziu recuperação ampla imediata. A maior parte dos serviços voltou ao normal por volta de 16:36 UTC com a recuperação da região Central US; Actions ficou degradado até aproximadamente 18:03 UTC. Parte do tráfego foi redirecionada para Northern Virginia, onde funcionou normalmente.
O Copilot Token Service, porém, demorou mais para estabilizar. Respostas atrasadas a um endpoint interno desencadearam um bug latente de retry no VS Code que amplificou o tráfego em aproximadamente 10 vezes. O tráfego do Copilot Token Service subiu de 7–9 mil requisições por segundo para 70–100 mil RPS. A recuperação exigiu reduzir a lógica de retry do gateway e bloquear temporariamente requisições de token no balanceador com resposta 403, com reentrada gradual de tráfego. Ataques de scraping nos endpoints codeload também complicaram a recuperação.
Ações preventivas
Entre as medidas anunciadas estão: corrigir as políticas de autoscaling para considerar a capacidade e concorrência dos sidecars do service mesh; auditar limites de requisição, concorrência e escalonamento do Istio nos serviços afetados; revisar limites de retry e comportamento de backoff nos gateways e clientes; corrigir o comportamento de retry do VS Code que amplificou o tráfego de tokens do Copilot; e melhorar o monitoramento de capacidade dos balanceadores e as salvaguardas de failover regional.