Skip to content
Dev Tools Article

GitHub Actions Has Become GitHub's Single Point of Failure

Today's Actions and Pages outage is GitHub's fifth incident in six days, and the causes look structural.

Lenn Voss
Lenn Voss
Cloud & Infrastructure Writer · Aug 6, 2026 · 4 min read
GitHub Actions Has Become GitHub's Single Point of Failure

GitHub's status page turned red again this afternoon. At 15:22 UTC, GitHub said it was investigating degraded performance for Actions; within twenty minutes that became degraded availability, with workflow runs failing to start, queued jobs timing out, and API requests returning errors. Pages followed at 15:53, recovered at 16:19, then went down again eight minutes later. More than ninety minutes in, at the time of writing, the incident is still open — GitHub says mitigations are rolling out while runs keep failing.

It's the second GitHub incident today (a Pages deployment-lag issue was resolved this morning) and at least the fifth in the first six days of August, following Copilot incidents on the 1st, 3rd, and 5th. Nobody on the Hacker News thread sounded surprised. The most telling complaint wasn't about downtime at all: "Even self hosted workers don't work during these outages," one commenter noted, because the scheduling API itself was refusing jobs.

That detail is the story. This isn't an outage post; it's a dependency-analysis post.

Pages didn't fail by coincidence

Pages going down alongside Actions is not two services having a bad day. Since GitHub moved Pages builds onto Actions in 2022, every Pages deploy — including the "deploy from branch" path most people think of as static — is an Actions workflow under the hood. The same consolidation has been happening across GitHub's product surface: Dependabot update jobs run on Actions compute, Copilot's coding agent executes inside ephemeral Actions environments, and countless release, GitOps, and scheduled automations sit on top of the same substrate.

That makes Actions less a CI product and more GitHub's internal orchestration layer — and its blast radius grows with every product built on it. The July 19–20 incident showed how far the cascade reaches: a five-hour Actions outage spread to API requests, Pages, Issues, and Git LFS, and downstream CircleCI reported stuck pipelines while OpenAI flagged failures in coding workflows that depended on GitHub. When Actions stalls, it doesn't just pause your tests. It pauses merges behind required status checks, agent runs, package publishes, and the deploy that would ship your fix.

This is capacity, not bad luck

One independent analysis of a year of GitHub status-page data (May 2025 through April 2026) counted 257 incidents, 48 of them major, totaling roughly 112 hours of degradation. Actions was the worst offender with 57 incidents — about three times more major incidents than core Git operations. The leading root-cause category wasn't botched deploys or Azure hiccups. It was capacity.

GitHub has effectively admitted this. CTO Vlad Fedorov has said the company started executing a 10x capacity plan in October 2025, then concluded by February that it actually needs to design for 30x current scale. The driver is agentic development: AI-generated pull requests reportedly jumped from around 4 million a month last September to 17 million by March. Every one of those PRs triggers CI, and agents iterate — push, fail, fix, push again — multiplying workflow runs per change far beyond what human-paced development ever produced. GitHub's answer is a wholesale migration of its infrastructure onto Azure, explicitly prioritized over feature work; by the company's own accounting this spring, around 40% of monolith traffic had moved. That is a fix measured in quarters, not sprints. The past year's lowlights — a ten-hour macOS runner degradation with 46% error rates in October, a May auth incident that greeted developers with bogus "your account is suspended" errors — are what the interim looks like.

So the honest read on today's incident isn't "GitHub had an outage." It's that Actions is running structurally over capacity, GitHub knows it, and the remediation timeline is long. Plan accordingly.

What actually helps (and what doesn't)

Self-hosted runners don't hedge this risk. They move the data plane — the machines executing jobs — while the control plane that schedules jobs stays in GitHub's cloud. Today's incident proved it again: self-hosted fleets sat idle because nothing could be scheduled. If outage resilience is why you're running your own runners, you're insuring the wrong layer.

Decouple deploys from CI. If your only path to production transits Actions, your rollback path is down precisely when you may need it. Keep a break-glass deploy that's just the CLI command your workflow wraps — wrangler deploy, flyctl deploy, aws s3 sync — documented, tested quarterly, and authenticated with short-lived credentials rather than someone's stale laptop config.

Decide your merge-bypass policy now. Required status checks turn an Actions outage into a merge freeze. An admin bypass with an audit trail is a fine policy; inventing it at 4 p.m. during an incident is not.

Get real cron off Actions. Scheduled workflows are documented as best-effort under load, and incidents like today's can drop queued jobs entirely. After recovery, don't assume the queue drained — gh run list --status queued and re-run what matters. Anything business-critical on a timer deserves an actual scheduler.

Do the migration math honestly. Self-managed GitLab buys you control-plane ownership at real operational cost; Buildkite's hybrid model splits the planes but keeps scheduling as SaaS. For most teams, the marketplace ecosystem and repo-adjacency that made Actions the default in the first place still outweigh a migration. The rational move for the majority isn't leaving — it's ensuring Actions can only slow you down, never stop you.

The uncomfortable verdict

GitHub Actions won CI/CD by being free-enough, integrated, and default. The cost of that victory is now visible: it became the execution substrate for GitHub's own products and half the industry's delivery pipelines just as agentic workloads blew past its capacity model. Until the 30x rebuild lands, degraded availability isn't an anomaly to wait out — it's an operating condition to engineer around. Treat Actions like any other third-party dependency with an error budget you don't control. If a ninety-minute weekday outage would breach your SLA, the fix isn't refreshing the status page. It's a deploy path that doesn't need a green check.

Sources & further reading

  1. GitHub Actions and Pages are experiencing degraded availability — githubstatus.com
  2. GitHub Actions and Pages are experiencing degraded availability — news.ycombinator.com
  3. GitHub Outages 2025-2026: Reliability Analysis and Outage History — blog.incidenthub.cloud
  4. GitHub Actions outage spread to APIs, Pages and downstream workflows — btw.media
  5. What's gone wrong at GitHub? — leaddev.com
  6. GitHub availability report: May 2026 — github.blog
Lenn Voss
Written by
Lenn Voss · Cloud & Infrastructure Writer

Lenn writes about cloud platforms, Kubernetes internals, and the infrastructure decisions that quietly make or break engineering organizations. Based in Berlin's vibrant tech scene, they have a talent for turning dense platform-engineering topics into prose that people actually finish reading.

Discussion 1

Join the discussion

Sign in or create an account to comment and vote.

Maya Ito @opensource_maya · 1 hour ago

five incidents in six days is genuinely concerning. infrastructure this critical shouldn't be this fragile, and i'd be worried about my ci/cd if i were heavily invested here

Related Reading