GitHub outage: sidecar limit, VS Code retry storm

Aug. 17 GitHub downtime: 7h 47m, with Copilot down longest

GitHub.com was degraded for 7 hours 47 minutes on August 17, and Copilot was the last part to fully recover, by 21:02 UTC. From 13:28 UTC, error rates rose and responses slowed across Issues, Pull Requests, the APIs, Actions and Copilot. Most of that cleared by 16:36 UTC, once GitHub's Central US data center recovered.

GitHub CTO Vlad Fedorov's blog post of August 20 gives the same 7 hours 47 minutes. He calls it GitHub's second major incident of the month, after an Actions failure on August 6, and says GitHub let down anyone trying to ship software that day.

"On August 17, 2026, from 13:28–21:15 UTC (7h 47m), GitHub.com experienced elevated errors and latency across Issues, Pull Requests, APIs, Actions, and Copilot."(GitHub Status)
View official source →
"On August 17, GitHub experienced an outage that lasted 7 hours and 47 minutes. It disrupted github.com, authentication, GitHub Actions, APIs, pull requests, issues, and Copilot, affecting developers and organizations around the world. If you were trying to ship software that day, we let you down."/"This was our second significant incident in August, following an actions failure on August 6."(GitHub Blog)
View official source →

Sign-in and GitHub Enterprise Cloud data residency were hit

Sign-in was hit along with the other services, and single sign-on through SAML/OIDC, SCIM user provisioning and Team Sync were all affected. At the peak, web and API error rates ran at about 20%, and archive and raw-content downloads at about 50%. GitHub had already posted both figures in its 14:04 UTC status update, before it had found the root cause.

GitHub Enterprise Cloud with data residency lets a company choose where its code and data are stored, and hosts the enterprise on a dedicated GHE.com subdomain. Its Actions workflows were affected too if they depended on public workflow step definitions hosted on GitHub.com.

GitHub's August availability report measures the damage another way: at the peak, 56.07% of incoming requests to the affected services failed or ran slow at GitHub's edge. Across the whole incident window, about 29,000 organizations saw at least one failed or slow request, with roughly 4.8 million such requests in total. The same report says no data was lost.

"At peak, web/API error rates were approximately 20%, while archive and raw-content downloads reached approximately 50%. SAML/OIDC authentication, SCIM, and Team Sync were also affected, as well as Actions workflows in GHEC with Data Residency that depend on public workflow step definitions hosted on GitHub.com."(GitHub Status)
View official source →
"Customer impact: At the peak, 56.07% of front-door requests to the affected services failed or ran slow at the edge. Across the window, about 29K organizations, defined as a collection of user accounts owning repositories, saw at least one failed or slow request—over roughly 4.8M failed or slow requests in total."/"No data was lost."(GitHub Blog)
View official source →

GitHub incident timeline: GitHub Actions down until ~18:03

Actions stayed degraded until about 18:03 UTC, and Copilot Token Service did not fully recover until 21:02, more than four hours after most services. The table uses the incident report's times plus the status updates GitHub posted during the day.

August 17 timeline (UTC)

Time What GitHub reported
13:28 Errors and latency start to rise
14:04 About 20% errors on web and API, about 50% on archive and raw downloads
16:36 Most services recover as Central US recovers
~18:03 Actions degradation ends
19:13 Authentication token retries partially disabled
20:08 Copilot authentication still failing in some apps; GitHub CLI and GitHub App unaffected
21:02 Copilot Token Service fully recovered
21:15 Incident resolved

GitHub's own documents do not agree on the start time and length. The August availability report heads this entry "13:40 UTC (lasting 7 hours and 35 minutes)", and its impact summary gives about 6 hours 44 minutes.

The incident report and the August 20 post both use the longer 7h 47m. None of the three documents explains the difference.

"Most services recovered by 16:36 UTC as our Central US datacenter recovered; Actions was degraded until approximately 18:03 UTC; and Copilot Token Service fully recovered by 21:02."/"We have partially disabled authentication token retries and have seen improvement, and we are monitoring impact before fully applying this mitigation."(Posted Aug 17, 2026 - 19:13 UTC)/"We are continuing to investigate sporadic failures affecting Copilot authentication in some applications. Copilot usage via the GitHub CLI and GitHub App are unaffected."(Posted Aug 17, 2026 - 20:08 UTC)(GitHub Status)
View official source →
"August 17 13:40 UTC (lasting 7 hours and 35 minutes)"/"Duration: approximately 6 hours 44 minutes"(GitHub Blog)
View official source →

The cause: an Istio sidecar limit that autoscaling missed

The outage began when a new traffic peak pushed an Istio sidecar to its concurrency limit, and autoscaling did not add capacity because its policy watched the host service instead. GitHub's incident report names the immediate cause as network saturation on the load balancers in Central US. In the August 20 post, Fedorov adds that neither the August 6 outage nor this one was caused by a code or configuration change, and he calls both capacity failures.

How one sidecar limit became a GitHub outage

  1. Traffic reaches a new peak in Central US
  2. An Istio sidecar pod hits its concurrency limit
  3. Autoscaling watches the host service, not the sidecar, so the sidecar does not scale up
  4. Load balancers in Central US saturate
  5. Four HAProxy nodes exhaust their flow limits and the gateway auth path degrades
  6. Optimistic retry logic overloads internal load balancers
"The immediate cause of the failure was network saturation on load balancers in Central US due to a new peak in traffic. Originally this was caused by an Istio sidecar pod reaching its concurrency limits and failing to auto scale correctly because of a misconfigured policy that watched host service but not sidecar limits."(GitHub Status)
View official source →
"Our investigation found that the outage began when traffic reached a new peak, and a critical infrastructure component in our Central US data center failed to scale with it."/"Neither outage was caused by a code or configuration change. Both incidents were capacity failures at their core."(GitHub Blog)
View official source →

Autoscaling watched the host service, not the sidecar proxy

Autoscaling was keyed to the host service, so when the sidecar hit its concurrency limit, nothing scaled up. In Istio's sidecar mode, every workload runs next to a sidecar proxy, a process that carries its traffic to and from the rest of the mesh. When that proxy is the bottleneck, the workload behind it can look healthy by its own metrics while requests pile up in front of it.

GitHub's incident report calls this a misconfigured policy. The first fix listed in the August availability report names the gap: autoscaling should account for sidecar concurrency and capacity, "not just the host service."

"A new peak in traffic pushed one datacenter's load balancers past their limits. A service-mesh sidecar reached its concurrency limit and did not scale up."/"Correct autoscaling policies so they account for service-mesh sidecar concurrency and capacity, not just the host service."(GitHub Blog)
View official source →

Load balancer saturation spread to four HAProxy nodes

From the sidecar, the failure spread until four HAProxy nodes ran out of flow capacity and degraded the gateway authentication path. A load balancer distributes incoming requests across servers, and HAProxy is open-source software that does that job. Many services route through that data center and share its authentication gateway, so authentication slowed or failed across all of them.

Optimistic retry logic made the overload worse by piling more requests onto internal load balancers. Pausing HAProxy on those four nodes at once brought broad recovery right away. Scraping attacks on codeload endpoints slowed recovery, and the report files them under complicating factors, not causes.

"One failure cascaded to more and eventually four HAProxy nodes exhausted their flow limits, degrading the gateway auth path and causing widespread authentication latency and failures. The problem was worsened by optimistic retry logic which overloaded internal load balancers. Pausing HAProxy on those nodes simultaneously produced immediate broad recovery."/"Complicating factors that impeded recovery included a number of scraping attacks on codeload endpoints."(GitHub Status)
View official source →
"As requests backed up, several of the datacenter's load-balancer nodes exhausted their network flow limits, which degraded the shared gateway authentication path and produced widespread authentication latency and failures across the many services that route through that datacenter."(GitHub Blog)
View official source →

Why the Copilot outage lasted longest: a retry storm

A retry storm, where large numbers of clients keep resending requests that failed, is the reason Copilot came back last. It hit Copilot Token Service, which handles Copilot's authentication tokens, and kept Copilot authentication failing sporadically in some apps for hours after most of GitHub had recovered by 16:36 UTC. Fedorov's post calls it a client-side retry loop that added load during recovery, one GitHub had to contain before it could safely let traffic back in.

Copilot Token Service requests per second

Normal range against the outage range, in thousands of requests per second, from GitHub's incident report. The report attributes the increase to client retry behavior.

7Normal, low
9Normal, high
70Outage, low
100Outage, high
"Most GitHub services recovered earlier that day, but some Copilot services took longer. Errors in those services triggered a client-side retry loop that increased traffic during recovery. We had to mitigate that behavior before we could safely restore traffic."(GitHub Blog)
View official source →

VS Code retry logic drove Copilot token traffic up about 10x

A latent retry bug in VS Code multiplied the traffic about 10 times: Copilot Token Service went from a normal 7–9K requests per second (RPS) to 70–100K RPS. What set it off was a slowdown in replies from a single internal endpoint. From there, each failed token operation could spawn many more requests and leave the client retrying in a loop.

The incident report puts the bug in VS Code, and the availability report calls it a client retry bug. Neither one names the Copilot extension, although some coverage did. Working out what a client is doing from its traffic alone is a separate problem, explained in AI Agent Detection: Binary Bot Filters Miss 39%.

Late in the incident, the 20:08 and 20:45 UTC status updates said Copilot through the GitHub CLI and the GitHub App was unaffected. By then the failures were sporadic Copilot authentication errors in some applications.

"Delayed replies to a single internal endpoint triggered a latent retry bug in VS Code that amplified traffic by approximately 10x and caused delayed recovery for the Copilot Token Service."/"Residual Copilot authentication failures continued because client retry behavior amplified load: a failed token operation could generate many extra requests and enter a retry loop. Copilot Token Service traffic increased from a normal 7–9K RPS to 70–100K RPS."/"We are continuing to apply mitigations to address sporadic Copilot authentication failures in some applications. We expect full recovery within the next 30 minutes. Copilot usage via the GitHub CLI and GitHub App are unaffected."(Posted Aug 17, 2026 - 20:45 UTC)(GitHub Status)
View official source →

GitHub stopped the retry storm with load balancer 403s

GitHub ended the storm by cutting retries at its gateway and having its load balancers answer Copilot token requests with a 403, then gradually letting traffic back in site by site. A 403 is the HTTP "forbidden" status, and since the load balancers returned it themselves, the blocked requests stopped there instead of reaching the token service. The storm hit Northern Virginia, the site that had taken over some failing traffic from Central US while GitHub debugged the network failure there.

The retry cut shipped as a pull request that temporarily scaled back gateway retries. At 19:13 UTC, GitHub said it had partially disabled authentication token retries and was seeing improvement. The incident report credits those retry cuts, together with blocking the responses that triggered retries, for steadying Copilot Token Service and finishing the recovery.

"Some of the failing traffic was moved from Central US to Northern Virginia where it was served successfully until the network failure in Central US was debugged and resolved."/"The retry storm in Northern VA was fixed by 1) temporarily reducing gateway retry logic with a PR and 2) blocking inbound Copilot Token Service token requests at the load balancers with a 403, and then gradually ramping back up traffic per-site to allow callers to succeed."/"Reducing gateway authentication retries and blocking retry-triggering responses stabilized Copilot Token Service and completed recovery."(GitHub Status)
View official source →

GitHub postmortem: fixing Istio sidecar limits and retries

GitHub's fixes target the two failures: make scaling see the sidecar's limits, and keep retries from turning a partial failure into a wider one. The incident report lists five follow-up actions, and the August availability report repeats them in slightly different words. The August 20 post adds changes meant to reach past this one incident.

On capacity, Fedorov's post puts monthly commits at 2.9 billion, up from 1.4 billion in April, and says that growth explains the pressure but does not excuse the outages. Since making reliability commitments earlier in 2026, he writes, GitHub has added more than 3 million CPU cores and 120 petabytes of fast storage. As of the post, Azure carried roughly 58% of GitHub's platform load, up from 12% in May.

Growth on that scale invites guesses about its cause, with AI coding tools a common one. As of September 29, 2026, none of GitHub's three documents on this outage says what drove the growth or names AI as a cause.

"Since April, monthly commits have grown from 1.4 billion to 2.9 billion. That growth explains the pressure on our systems, but it does not excuse these outages."/"As part of the reliability commitments we made earlier this year, we have focused on three priorities: adding capacity, improving efficiency, and removing architectural bottlenecks. We have since added more than 3 million CPU cores, 120 petabytes of high-speed storage, and significant network capacity."/"Today, Azure serves roughly 58% of GitHub's platform load and half of all Git operations, up from 12% of platform load in May."(GitHub Blog)
View official source →

Retry logic and failover fixes in the GitHub incident report

The incident report's five follow-up actions cover sidecar-aware autoscaling, Istio limits, retry behavior, the VS Code bug, and load-balancer monitoring and regional failover. Put plainly, GitHub says it will:

  • Make autoscaling react to the sidecar's concurrency and capacity as well
  • Recheck the request, concurrency and scaling limits Istio applies to the affected services
  • Revisit how many retries gateways and clients allow and how they back off between attempts
  • Fix the VS Code retry behavior that multiplied Copilot token traffic
  • Watch load-balancer headroom more closely and add safeguards to regional failover

Fedorov's post adds two changes drawn from the August 6 and August 17 incidents. The first is to apply consistent retry limits, retry budgets and variable timeouts between services to keep storms like this one from forming. The second is to review lower-priority CPU and memory alerts for components that could fail when traffic jumps.

Beyond those two, the post says GitHub is separating its critical systems and cutting the dependencies they share. The aim is fewer outages, and smaller ones when one does happen.

"- Correcting autoscaling policies to account for service-mesh sidecar concurrency and capacity."/"- Auditing Istio request, concurrency, and scaling limits across affected services."/"- Reviewing retry limits and backoff behavior across gateways and clients."/"- Addressing the VS Code retry behavior that amplified Copilot token traffic."/"- Improving load-balancer capacity monitoring and regional failover safeguards."(GitHub Status)
View official source →
"The August 6 and August 17 incidents led to two immediate changes. First, we are applying consistent retry limits, retry budgets, and variable timeouts across service-to-service interactions to prevent retry storms and cascading load. Second, we are reviewing lower-priority CPU and memory alerts to identify components that could fail during sudden traffic spikes."/"In addition, we are also isolating critical systems and removing shared dependencies between them. This work is designed to reduce the likelihood of an outage and limit its impact when one occurs."(GitHub Blog)
View official source →

GitHub availability report: five GitHub outages in August

GitHub's August availability report lists five incidents, and the August 17 outage was neither the first nor the longest of them. The report, by Jakub Oleksy, is dated September 9, 2026.

GitHub's five August 2026 incidents, as the availability report lists them

Start (UTC) Length What was hit
Aug. 6, 15:22 10h 42m GitHub Actions and features built on it
Aug. 17, 13:40 7h 35m Issues, pull requests, APIs and sign-in (this outage)
Aug. 20, 14:43 9h 54m Copilot cloud agent task status
Aug. 26, 15:11 2h 50m GitHub Actions run starts
Aug. 27, 10:04 2h 8m Copilot requests routed to Kimi K3

GitHub publishes these reports monthly, and the June edition counted six incidents, the July edition eight. The August edition says the repairs from these incidents have already improved capacity monitoring and management, retry policies and the resilience of core services. It restates GitHub's order of priorities as availability, then capacity, then features.

Apart from the start time and length, GitHub's three documents agree on how the August 17 outage unfolded, though only the incident report names Istio, HAProxy and VS Code. A sidecar limit the autoscaler did not watch led to saturated load balancers and HAProxy nodes, and a VS Code retry bug delayed Copilot Token Service's full recovery until 21:02 UTC.

"In August, we experienced five incidents that resulted in degraded performance across GitHub services."/"August 06 15:22 UTC (lasting 10 hours and 42 minutes)"/"August 17 13:40 UTC (lasting 7 hours and 35 minutes)"/"August 20 14:43 UTC (lasting 9 hours and 54 minutes)"/"August 26 15:11 UTC (lasting 2 hours and 50 minutes)"/"August 27 10:04 UTC (lasting 2 hours and 8 minutes)"/"As repair items from these incidents, we've made significant improvements to our capacity monitoring and management, retry policies that led to bigger impact, and resiliency improvements to core services."/"This principle continues to guide us: availability, then capacity, then features."(GitHub Blog)
View official source →

FAQ

How long was GitHub down on August 17, 2026?
GitHub's incident report puts it at 7 hours 47 minutes, from 13:28 to 21:15 UTC. Most services were back by 16:36 UTC, Actions by about 18:03, and Copilot Token Service by 21:02. GitHub's August availability report lists the same incident as starting at 13:40 UTC and lasting 7 hours 35 minutes.
What caused the GitHub outage?
A new traffic peak pushed an Istio sidecar pod to its concurrency limit, and it did not scale because the autoscaling policy watched the host service rather than the sidecar. Load balancers in Central US saturated, four HAProxy nodes exhausted their flow limits, and sign-in failed widely. Optimistic retry logic made it worse.
Why did Copilot take until 21:02 UTC to recover?
A latent retry bug in VS Code held it back. Slow replies from one internal endpoint set the bug off, and Copilot Token Service traffic rose from a normal 7–9K requests per second to 70–100K. GitHub cut gateway retries, returned 403 to Copilot token requests at its load balancers, and gradually ramped traffic back up per site.
Was the GitHub outage caused by a deploy or by AI traffic?
GitHub CTO Vlad Fedorov wrote on August 20 that neither this outage nor the August 6 one was caused by a code or configuration change, and called both capacity failures. He tied the pressure to monthly commits growing from 1.4 billion to 2.9 billion since April. As of September 29, 2026, none of GitHub's three documents on the outage (that post, the incident report and the August availability report) says that growth came from AI.
Is GitHub down right now?
This page covers the August 17, 2026 incident only. For live status, check GitHub's status page at githubstatus.com, which GitHub's August availability report points to for real-time updates and post-incident recaps.