Between June 30 and July 8, 2026, Vercel's own status page logged three separate incidents, each hitting a different subsystem: workflow orchestration, the regional CDN/Dashboard/Functions stack, and the build queue. Not one root cause surfacing three times — three independent failures, roughly forty-eight hours apart, in systems that don't share code paths. For a team whose entire deploy loop is "push to git, Vercel builds it, Vercel serves it, Vercel's automation runs on top of it," all three layers have to stay up at once for that loop to work. This is the timeline, the numbers Vercel itself publishes about how often this happens, and an honest look at what changes — and what doesn't — when you own the infrastructure underneath each layer instead of reading about its failure on someone else's status page.
The Eight-Day Timeline
Here's what Vercel's status history and community reports show, incident by incident:
| Dates (2026) | Subsystem | Duration | What broke |
|---|---|---|---|
| Jun 30, 22:24 UTC – Jul 1, 16:08 UTC (impact window); resolved Jul 1, ~18:30 UTC | Workflows | ~1.5 hrs from identification to resolution, ~20 hrs impact window | Workflow runs created in the impact window got stuck in "pending" or landed in a failed state. New runs after the window were unaffected; affected runs were either resumed or transitioned to cancelled |
| Jul 2, 4:36 PM UTC start | CDN / Dashboard / Functions (Washington iad1, Cleveland cle1) | ~15 minutes | Degraded performance across CDN, Dashboard, and Functions in two specific regions; identified, fix implemented, recovery observed |
| Jul 8, through 19:13 UTC | Build queue | Several hours, resolved by 19:13 UTC | Builds delayed starting or stuck in "initializing"; queue began draining by 18:40 UTC, some customers still saw stragglers before full resolution |
Three different subsystems. Three different fixes. Three separate "resolved" timestamps, each one closing out independently of the other two. If you were deploying through any of those windows, the odds that your specific push landed inside one of them were low on any given day — but the pattern across eight days is what's worth reading, not any single incident's blast radius.
Why "Three Separate Subsystems" Is a Different Problem Than "One Big Outage"
A single major outage — the kind that takes the whole platform down for an hour — is bad, but it's a known failure mode with a known playbook: wait, then retry. Three unrelated incidents in eight days is a different signal, because it's describing the shape of the dependency graph, not just its uptime.
A git-push deploy on a platform like Vercel is not one system; it's a chain: your commit triggers a build, which produces an artifact, which gets published to a CDN and edge/serverless runtime, and increasingly, business logic runs as workflow/automation jobs layered on top (cron-like jobs, background tasks, agent-triggered actions). Each of those three is a distinct subsystem with its own on-call rotation, its own deploy cadence, and — as this eight-day window shows — its own independent failure mode. The build queue backing up on July 8 had nothing to do with the CDN degrading in two regions on July 2, which had nothing to do with workflow runs getting stuck on July 1.
That independence is the actual finding. A platform that fails the same way twice has a bug. A platform whose build pipeline, serving layer, and automation layer each fail on their own schedule has three separate systems you're simultaneously betting on staying up, and you can't harden against any of them from the outside — you can only wait for the status page to move from "investigating" to "resolved."
Vercel Workflows is the newest of the three layers, and it's also the one where "stuck" causes the most confusing downstream symptoms — its own community forum has recurring threads with titles like "Workflow runs stuck in pending or running state without executing" and "Runs Stuck in Active State for 7+ Hours – Cannot Cancel Them," separate from the June 30–July 1 status-page incident. Workflows is the layer teams increasingly point at cron-style jobs, webhook handlers, and agent-triggered background tasks — exactly the kind of automation this list's audience is building more of, not less, as agents take on operational work. A build queue backing up is annoying but visible: your deploy just doesn't finish. A workflow run stuck silently in "pending" for hours is a job a team may not notice failed until whatever downstream system was waiting on it times out on its own.
The Numbers Behind the Pattern
This particular week isn't an outlier so much as a sample from a fairly consistent baseline. Third-party status trackers that poll Vercel's public status API put its trailing-12-month track record at 99.98% availability across 64 tracked components, with an average resolution time of about 1 hour 57 minutes per incident, and roughly 98 separate outages logged in the preceding 12 months — call it about two a week, most small enough that only customers in the affected region or using the affected feature ever notice.
Set that against what Vercel contractually promises Enterprise customers: a 99.99% uptime SLA, with service credits if it's missed — capped at 50% of that month's bill for all unscheduled downtime combined, paid out as future-usage credit, not cash, within 60 days of a claim. The gap is the part worth sitting with: 99.98% actual versus 99.99% promised is close on paper, but it's measured across 64 components, which means a component-specific incident (workflows on July 1, iad1/cle1 on July 2) can blow well past four-nines for the exact subsystem your deploy happened to touch, while the platform-wide aggregate still reads as "basically fine." A credit capped at half a month's bill also doesn't reimburse the actual cost of a stuck workflow run or a delayed production deploy — it reimburses the invoice, which for most teams is not where the incident's cost actually landed.
None of that makes Vercel unusually unreliable — 99.98% with sub-two-hour average resolution is a genuinely solid operational track record, and most self-hosted setups don't have their own status page publishing that kind of granularity at all. The point isn't "Vercel is worse than it claims." It's that the aggregate number hides which specific layer failed on which specific day, and a team on the receiving end of any one of those 98 incidents experiences it as a full stop on their specific deploy, regardless of what the trailing-year average says.
What Owning the Layers Actually Changes
Self-hosting doesn't make builds, CDNs, or workflow engines fail less. A build can still hang, a region can still degrade, a job queue can still back up — those are properties of running software at scale, not properties unique to Vercel. What changes when the build runner, the routing layer, and the automation layer all run on infrastructure you provisioned is narrower than "more uptime," and it's worth being precise about it instead of overselling it:
- You can see which layer is actually broken, in real time, without waiting on someone else's incident classification. A stuck build on your own Cluster API-managed nodes shows up in your own logs and metrics the moment it happens — you're not watching a status page cycle through "investigating" → "identified" → "monitoring" for a subsystem you can't inspect.
- A fix for one layer doesn't queue behind another team's release schedule. If your build queue backs up, you can restart the runner, add capacity, or roll back the change that caused it — on your timeline, not after a vendor's internal root-cause analysis completes.
- The three layers can fail independently for you too — but you decide the blast radius. Running builds, routing, and background jobs on infrastructure you control doesn't collapse them into one system; it means you choose the isolation boundaries (separate node pools, separate namespaces) rather than inheriting whatever boundaries a shared multi-tenant platform drew for you.
What doesn't change: you now own the incident response. There's no vendor status page, no SLA credit, no one else's on-call engineer paged when a node degrades at 4:36 PM on a Thursday — that's your team, or it's nobody. Trading "read about the outage after the fact" for "get paged for the outage yourself" is a real trade, not a strictly better one, and it only pays off if the team taking it actually has the operational capacity to answer that page.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own, with the build, routing, and automation layers all visible on infrastructure you control rather than behind a vendor's status page. Star the repo on GitHub or deploy your first app today.



