Case Study

Vercel FRA1 CDN Failures, June 2026: Monitoring a Vercel App Across Regions

11 min read

The blind spot: the Vercel FRA1 outage in June 2026 was a partial degradation of one region, not a platform-wide outage: on June 14 2026, Vercel's FRA1 CDN in Frankfurt hit elevated latency and errors, and Vercel rerouted that traffic to CDG1 in Paris until Frankfurt recovered. If your one monitoring vantage never routes through Frankfurt, you see 100 percent green while Frankfurt-served users get errors, so you do not even know there is an incident. The way to monitor a Vercel app across regions is coverage: run a monitor from each region your users come from, against the same production URL, so a one-region failure lands on a monitor that was actually sampling there. Velprove gives you 5 probe regions on every plan, and its free, no-code browser login monitor walks the real sign-in path from the region you choose. To be clear up front, Velprove did not monitor this incident and we make no claim that we detected it or would have; we use its shape to show why running monitors from more than one region is what surfaces a single-region failure at all.

What FRA1 errored on June 14, 2026 (and the rest of Vercel that didn't)

What was affected here was narrow, and the narrowness is the whole point. Vercel named exactly one thing: the CDN in the FRA1 region, Frankfurt, Germany. The verbatim incident title on Vercel's status page is "Elevated latency and errors in FRA1 Vercel Region (Frankfurt, Germany)." Not Functions. Not Serverless or Builds. Not the Edge. Not any other Vercel region. One CDN region, classified Major, a partial degradation of elevated latency and errors rather than a full stoppage. Requests through Frankfurt were slow and some errored; the platform as a whole kept running.

What did not break matters just as much, because it is what makes this kind of failure easy to miss. A Vercel-hosted app serving users in North America, the UK, or Asia saw nothing. Their traffic never touched FRA1. The status code on their requests stayed clean the entire window. The blast radius was one region's CDN, and unless your users or your monitors actually route through Frankfurt, the incident is invisible to you by construction, not by accident.

One disambiguation, because June 2026 had more than one Vercel incident. This is not the June 9 build-error incident, and it is not the June 8 DUB1 Functions errors. Different components, different regions, different days. Name them only to keep them apart; do not conflate them with this FRA1 CDN event.

The FRA1 timeline (UTC, from Vercel's status page)

The timeline below is taken from Vercel's status page incident permalink. All times UTC. Source: Vercel Status incident 2f4kf430rmlz.

Time (UTC)StatusUpdate
Jun 14, 21:03Investigating"We are currently re-routing traffic from the FRA1 Vercel Region to the CDG1 Vercel Region. We are currently investigating this issue."
Jun 14, 21:07Identified"We are currently re-routing traffic from the FRA1 Vercel Region to the CDG1 Vercel Region."
Jun 14, 21:26Update"The impact is currently mitigated."
Jun 14, 23:15Update"The issue has been fixed. We are starting to re-route traffic from the CDG1 Vercel Region back to the FRA1 Vercel Region."
Jun 15, 00:25Monitoring"All traffic has been restored to the FRA1 Vercel Region."
Jun 15, 01:24Resolved"This incident has been resolved."

The two bookend timestamps run from 2026-06-14 21:03 UTC to 2026-06-15 01:24 UTC, which works out to approximately 4 hours 20 minutes. That duration figure is our derivation from the two published timestamps, not a number Vercel stated. And it is worth reading carefully, because the elapsed time and the user-facing impact are not the same thing. Vercel reported the impact mitigated at 21:26 UTC, roughly 22 minutes after the incident opened. The bulk of the remaining window was Vercel cautiously rerouting traffic from Paris back to Frankfurt: the fix landed at 23:15 UTC, all traffic was restored to FRA1 at 00:25 UTC the next day, and the incident was formally resolved at 01:24 UTC. So the sharp user-facing pain was concentrated in that first ~22 minutes; the long tail was a careful, staged return to the home region, not four-plus hours of continuous errors.

Vercel did not publish a root cause. There is no postmortem at the incident URL as of writing, which is normal for a single-region partial degradation. We do not speculate on why FRA1 degraded. No AWS region, no capacity story, no bad deploy, no traffic spike. The record says elevated latency and errors, mitigated by rerouting; we quote that and stop. This is also effectively a single source, Vercel's own status page, with no third-party corroboration, which is stated here so the post claims no more than the record supports.

How Vercel reroutes a failing CDN region (and why it can still hit users)

Vercel's CDN is built as a wide front edge over a smaller compute footprint: over 126 Points of Presence in front of 20 compute-capable regions. FRA1 is Frankfurt, Germany; CDG1 is Paris, France, the next-closest region. Vercel's documented behavior is exactly what played out here: "In the event of regional downtime, application traffic is automatically rerouted to the next closest region." When Frankfurt degraded, Vercel rerouted that region's CDN traffic to Paris, then routed it back to Frankfurt once the region recovered. Vercel said as much in its own updates: "We are currently re-routing traffic from the FRA1 Vercel Region to the CDG1 Vercel Region," and later, "The issue has been fixed. We are starting to re-route traffic from the CDG1 Vercel Region back to the FRA1 Vercel Region."

One accuracy point that is easy to get wrong, so hold it precisely. This CDN-region reroute is platform behavior that Vercel operates for everyone. It is not the same thing as automatic Vercel Function failover across regions, which is an Enterprise-only feature. Do not read this incident as "every Vercel customer gets automatic multi-region failover." They do not. What happened here is Vercel, as the platform operator, steering CDN traffic away from a sick region and back again. That is distinct from your Functions automatically failing over to another region, which only Enterprise plans get.

And here is the bridge to why any of this matters for monitoring. Rerouting is not instant and it is not free of impact. There is a real window, before and around mitigation, where requests pathing through Frankfurt saw elevated latency and errors. The platform absorbed it well and recovered, but "the platform handled it" and "no user felt it" are different claims. Users hitting FRA1 during that window experienced the degradation. If those were your users, the incident was real for your product, whatever the rest of the world saw.

Why a single monitoring vantage misses a one-region failure

Here is the failure shape this post is built around, and it is different from the two we have already taught. A single-region CDN degradation is invisible to a monitor that never routes through that region. If your one monitoring vantage runs from, say, North America, and FRA1 degrades in Frankfurt, your monitor reports a clean 100 percent green the entire time. Not because the monitor is misconfigured, but because nothing your monitor touched was broken. The errors were happening to a population you were not watching. You do not have a false green; you have no signal at all, because you never sampled the place that failed.

Be precise about what this is and is not. This is not a 200-but-slow problem. In a 200-but-slow degradation, your monitor does hit the affected path and gets a successful status code that hides a real slowdown; the catch there is a response-time threshold, and that is the subject of a separate teardown. Here the issue is upstream of thresholds entirely: your monitor never even saw the failing region, so there is nothing for any assertion to catch. It is also not the differential-localization story, where you run probes from several regions to work out which region is slow. That assumes you already know there is an incident and are localizing it. This is a step before that: without coverage of the failing region, you do not know there is an incident to localize.

So the owned lesson here is coverage, not localization. And be exact about the mechanism, because it is easy to overstate. One Velprove monitor watches one region you pick. It does not watch all regions at once. Coverage means running monitors from more than one vantage, so that the regions your users actually come from are each being sampled by something. If Frankfurt is a place your users live, something of yours has to be watching from there, or the next FRA1-shaped incident is a green dashboard and a support ticket arriving at the same time.

Monitoring a Vercel-hosted app across regions with Velprove

The primitive is a Velprove HTTP monitor pointed at your real production URL, with the probe origin set to a region you care about. Velprove offers 5 probe regions on every plan: North America, Europe, United Kingdom, Asia, and Oceania. Each monitor runs from one of them. To cover more than one vantage, you create more than one monitor, one per region, against the same URL. That is what turns a single blind spot into actual geographic coverage: if a Europe-origin monitor is watching while an FRA1-shaped degradation hits, that monitor is the one that goes red, while your North America monitor, correctly, stays green because nothing it touched broke.

A light, useful detail on the HTTP side: Vercel sets an x-vercel-id header on responses, shaped roughly as <pop>::<region>::<hash>. Its presence confirms the response came back through a Vercel edge node rather than a stale cached error page from somewhere upstream. You do not need to over-engineer assertions on it; a status-code assertion plus a body-contains assertion on a string your page always returns is the workhorse pair. The point of multi-region here is not a fancier assertion, it is sampling the right places.

The Schedule and Alerts step of an HTTP monitor, with the probe origin set to Europe. One monitor watches one region you pick; to cover a region like Europe where FRA1-served users live, point the monitor there. Covering a second vantage means a second monitor against the same URL.
Velprove new HTTP monitor wizard on the Schedule and Alerts step, showing a single-select probe-region picker with five region buttons labeled North America, Europe, United Kingdom, Asia, and Oceania, and only Europe highlighted in emerald to indicate one region is selected as the probe origin for this monitor.

There is a second, sharper layer of coverage that an HTTP probe alone does not give you, and it is Velprove's strongest instrument here: the browser login monitor. It opens a real browser, signs into your own login from the probe region you choose, and verifies that a known string from the post-login page is present. Run it from a non-default region like Europe and it walks the actual user path, sign-in and the redirect that follows, through that region's CDN, the way a real customer in Frankfurt would, with no code to write. That is a stronger statement than an HTTP status code: it confirms a real session can be established through that edge, not just that a URL answered. If Frankfurt-served sign-ins were failing while the rest of the world stayed green, this is the monitor that goes red.

A browser login monitor's success verification set to Page contains text on a known post-login string. This monitor is configured to run from Europe, so it walks the real Frankfurt-served sign-in path a customer would, in a real browser, and confirms a session was established rather than just that a URL answered. The browser login monitor is free.
Velprove browser login monitor on the Verify step in edit mode, showing the Success verification control set to Page contains text with the value set to a known post-login string, Welcome to the Secure Area, the string that only renders after a successful sign-in. This is the success condition Velprove checks for after the browser signs in.

Picking which regions to cover

Cover where your users come from, not every region for its own sake. If your traffic is mostly European, a Europe vantage is the one that has to exist; if you have a meaningful Asia or North America base, add those. The reason this is reachable without paying is the free plan's shape: 10 monitors and all 5 regions are available on Free, so a two- or three-vantage spread across the same URL fits comfortably inside the free tier. You do not need a paid plan to stop being single-vantage. Pick the two or three regions your customers actually live in, point a monitor from each, and the FRA1-shaped blind spot closes for the places that matter to you.

What this teardown does and does not claim

The honest version of this post is the one that draws its own boundaries, so here they are plainly.

We did not detect this. Velprove did not monitor Vercel's FRA1 region during this incident. We are not claiming we caught it, and we are not claiming we would have caught it as a matter of fact. Everything above is the failure shape that multi-region coverage is built to surface, presented as a worked example, not a detection war story.

There is no detection-time lead to quote. The incident opened on Vercel's status page at its own start time; there is no published gap between impact beginning and acknowledgment for us to measure a lead against, and we do not invent one.

Coverage surfaces, it does not prevent. Watching FRA1 from a Europe vantage would tell you sooner that Frankfurt-served users are seeing errors. It would not have stopped FRA1 from degrading. That is Vercel's platform to fix, and they did.

We do not know the root cause. Vercel did not publish one. We do not fill that gap with a guess about AWS, capacity, deploys, or traffic.

One region per monitor. The coverage above is the result of running several monitors, one per region, against the same URL. A single monitor is a single vantage, by design.

And the reroute is not Enterprise Function failover. The CDN-region rerouting Vercel performed here is platform behavior for everyone; automatic cross-region Function failover is a separate, Enterprise-only feature. Do not read one as the other.

The pattern, not just this incident

A single-region degradation on a platform you do not fully watch is a recurring shape, not a one-off. The instrument outlives this particular Frankfurt blip: monitors running from the regions your users actually come from, so that a failure localized to one region lands on a monitor that was sampling there. Build that coverage once and it is ready the next time any one region of any provider goes sideways while the rest of the world sees green.

This teardown reads as a pair with one we published recently. In the Supabase Storage latency teardown, the failure was a region that was slow but still returning 200s: the monitor was hitting the affected path, the status code lied by staying green, and the catching instrument was a response-time threshold. Here the distinction is errors versus slow, and coverage versus depth. There the monitor saw the right place and needed a sharper assertion; here the monitor needs to see the place at all. Both are members of the same broader family, a green dashboard hiding a degraded reality, which we catalog in the anatomy of a silent outage and in why uptime monitors miss outages. Errors in a region you do not watch is one of the quieter ways a monitor can be green and wrong at the same time.

Monitor your Vercel app

A single-region CDN failure like FRA1 on June 14 is invisible to a monitor that never routes through the failing region, and visible to a monitor that does. The fix is coverage: run monitors from the regions your users come from, so a one-region degradation lands somewhere you are actually watching. Velprove's free plan covers the setup: 10 monitors, all 5 regions on every plan, no credit card. Browser login monitors are free, so you can walk the real sign-in path from a non-default region. And if your check needs an auth step first, multi-step API monitors are free up to 3 steps. Point an HTTP monitor at your production URL from each region your customers live in, add a browser login monitor from the region you care about most, and the next single-region incident shows up on a monitor instead of in a support ticket.

This post owns the coverage angle. For the deeper platform surface, Cron, Marketplace storage, regional Functions, see monitor a Vercel site at the platform layer. Start free and point a monitor at your Vercel app from the regions that matter to you.

Frequently Asked Questions

What happened during the Vercel FRA1 incident on June 14, 2026?

Vercel's CDN in the FRA1 region, Frankfurt, Germany, hit elevated latency and errors starting 2026-06-14 21:03 UTC. Vercel rerouted that region's CDN traffic to CDG1, Paris, reported impact mitigated at 21:26 UTC, then routed traffic back to Frankfurt, with all traffic restored to FRA1 at 2026-06-15 00:25 UTC and the incident resolved at 01:24 UTC. Vercel classified it Major and it was a partial degradation, elevated latency and errors, not a full outage. Only the FRA1 CDN was named; no other component or region was. Vercel did not publish a root cause.

Was all of Vercel down during the FRA1 incident?

No. This was a partial degradation of one CDN region, Frankfurt, not a platform-wide outage. Vercel named only the FRA1 CDN; Functions, Builds, the Edge, and every other Vercel region were not named as affected. Apps whose users did not route through Frankfurt saw nothing. Do not conflate this with the separate June 2026 Vercel incidents, the June 9 build errors and the June 8 DUB1 Functions errors, which were different components and regions.

How long did the Vercel FRA1 incident last?

The incident ran from 2026-06-14 21:03 UTC to 2026-06-15 01:24 UTC, approximately 4 hours 20 minutes. That figure is our derivation from the two published timestamps, not a number Vercel stated. The sharp user-facing impact was concentrated in the first ~22 minutes: Vercel reported impact mitigated at 21:26 UTC. Most of the remaining time was Vercel cautiously rerouting traffic from Paris back to Frankfurt, with the fix at 23:15 UTC and all traffic restored to FRA1 at 00:25 UTC, so the long tail was a staged return rather than continuous errors.

Why did Vercel reroute FRA1 traffic to CDG1?

Because CDG1, Paris, is the next-closest region to FRA1, Frankfurt, and Vercel's documented CDN behavior is to automatically reroute traffic to the next-closest region during regional trouble. When Frankfurt degraded, Vercel steered that region's CDN traffic to Paris to keep serving requests, then routed it back once Frankfurt recovered. This is platform-operated CDN rerouting that applies to everyone. It is not the same as automatic Vercel Function failover across regions, which is an Enterprise-only feature.

Could an uptime monitor have surfaced the FRA1 errors?

Only if it was monitoring from a region that routed through Frankfurt. A single monitoring vantage that never touches the failing region reports 100 percent green, because nothing it sampled broke; the errors happened to a population it was not watching. Surfacing a single-region failure is a matter of coverage: run monitors from more than one region, including the regions your users come from, so a one-region degradation lands on a monitor that was sampling there. A browser login monitor run from that region walks the real sign-in path through that CDN.

Did Velprove detect the June 2026 Vercel FRA1 incident?

No, and this post makes no such claim. Velprove did not monitor Vercel's FRA1 region, and there is no detection-time lead to quote, because the incident opened on Vercel's status page at its own start time, leaving no published impact-versus-acknowledgment gap to measure against. What we can say is the failure shape, errors concentrated in one region you might never watch, is exactly what running monitors from more than one vantage is built to surface. Coverage surfaces such a failure; it does not prevent it.

Start monitoring for free

Free browser login monitors. Multi-step API chains. No credit card required.

Start for free