JH← Back to blog

AWS's CloudFront Outage Was a VPC Origins Bug — Here's the Failover Lesson

A July 16 AWS CloudFront outage knocked thousands of sites offline for 3.5 hours due to a VPC Origins routing configuration failure. Here's the root cause and what to fix in your architecture.


AWS CloudFront suffered a roughly three-and-a-half-hour outage on July 16 that served 5xx errors to visitors of thousands of websites worldwide, including at least one major DeFi platform, Morpho, whose app and API went down alongside the broader disruption. AWS's own post-incident explanation points to an internal constraint on the fleet managing connections to private VPC origins — when that constraint was reached, the system distributing routing configuration to network processors failed to load updated configuration data correctly, breaking routing specifically for CloudFront customers using VPC Origins. This is a genuinely different failure mode than AWS's other major 2026 incident, the us-east-1 thermal event, and it exposes a distinct architectural risk that any organization using CloudFront's VPC Origins feature needs to understand.

What CloudFront VPC Origins actually does, and why the failure mattered specifically to it

VPC Origins is a CloudFront feature that lets customers connect their CDN distribution directly to resources inside a private VPC — application servers, internal load balancers, or other backend infrastructure that isn't directly exposed to the public internet. It's a popular architecture specifically because it lets teams keep backend infrastructure private while still getting CloudFront's edge caching, DDoS protection, and global distribution in front of it. That popularity is exactly why this outage's blast radius extended well beyond typical CloudFront customers serving static content from S3 or a public origin — any organization using VPC Origins to connect its CDN to private backend infrastructure hit the same routing failure, regardless of what application or industry that backend served.

The technical root cause, plainly stated

AWS's account describes a fleet-level constraint — essentially a capacity or resource limit — on the systems that manage VPC Origin connections. When that constraint was reached, the configuration distribution system responsible for pushing routing updates to CloudFront's network processors failed to load the updated data correctly. The practical effect: requests destined for VPC-origin backends couldn't be routed properly, producing widespread 5xx errors for the affected customer segment specifically, while CloudFront traffic to non-VPC origins was largely unaffected. This is a subtly different failure category than a straightforward capacity outage — it's a configuration propagation failure triggered by hitting an internal limit, which means the fix isn't simply "add more capacity" in the way a pure scaling problem would be; it requires AWS to address both the underlying constraint and the failure mode in the configuration distribution system that occurred once that constraint was hit.

How this differs from AWS's other major 2026 outage

Earlier this year, AWS's us-east-1 region experienced a major outage traced to a thermal event — physical infrastructure, specifically cooling or heat-related failure, causing a cascading service disruption. The CloudFront VPC Origins outage is a completely different failure category: a software configuration distribution bug tied to a specific, relatively newer CDN feature, not a regional physical infrastructure event. The distinction matters for how you think about resilience planning. Multi-region redundancy — the standard mitigation strategy for a regional physical event like the thermal outage — would not have protected against this incident, since CloudFront's VPC Origins configuration distribution system is a global service layer, not something scoped to a single AWS region. Different failure modes require different mitigations, and conflating "we have multi-region redundancy" with "we're protected against any AWS outage" is exactly the assumption this incident should correct.

The uncomfortable pattern: two major AWS outages in one year, different causes

Two structurally distinct major outages from the same cloud provider within the same year is a legitimate data point for any organization's cloud risk assessment, independent of how well AWS resolves each individual incident. It's not evidence that AWS is becoming systematically less reliable — cloud providers of this scale run an enormous number of services, and some rate of significant incidents is close to statistically inevitable at that scale. But it is evidence that "diversify within a single cloud provider by using multiple regions" is an incomplete resilience strategy, since neither of this year's major AWS incidents would have been mitigated by multi-region architecture alone — one was a regional physical event, the other a global feature-specific software bug.

Why crypto and DeFi platforms felt this outage acutely

Morpho, a decentralized finance protocol, specifically confirmed its app and API went down during this outage before restoring service once AWS resolved the underlying issue. That's a useful illustrative case, because DeFi platforms are often assumed by users to be more resilient than traditional web infrastructure — the whole premise of decentralized finance is reduced reliance on centralized points of failure. But the actual application layer serving most DeFi platforms' user interfaces still runs on the same centralized cloud infrastructure as everything else on the internet, CloudFront included, and this outage is a clear demonstration that the "decentralized" branding of an underlying protocol doesn't extend to the web application most users actually interact with. Any organization in the crypto or fintech space marketing resilience or decentralization to users should be precise about which layer of their stack that claim actually applies to, since this incident is exactly the kind of gap between marketing and infrastructure reality that erodes user trust when it's exposed publicly.

The observability gap this incident exposes

One detail worth drawing out is how long it can take to distinguish "my application has a bug" from "my cloud provider's CDN has a configuration problem," especially for a novel failure mode like this one that doesn't match a team's existing runbook categories. Organizations with mature status-page monitoring and dependency mapping were able to correlate their own 5xx errors with AWS's status page relatively quickly; teams without that mapping likely spent real incident-response time investigating their own code and infrastructure before realizing the actual fault was upstream. Building and maintaining an accurate, current map of which of your services depend on which specific AWS features — not just "we use AWS," but "we use CloudFront with VPC Origins specifically" — pays for itself the next time an incident like this one hits, by cutting the time to correct root-cause attribution from hours to minutes.

What to actually do if you use CloudFront VPC Origins

  1. Confirm whether your production traffic actually routes through VPC Origins today, since this is a specific, relatively recent CloudFront feature and not every CloudFront customer uses it — check your distribution configuration directly rather than assuming.

  2. Build and test a fallback path that doesn't depend on VPC Origins routing specifically, even if that means temporarily exposing a public origin endpoint with tighter access controls during an active incident, as a break-glass option rather than a permanent architecture change.

  3. Separate your incident response runbooks for "regional AWS outage" versus "global AWS service-layer bug." Multi-region failover procedures don't apply to this failure category, and having a single generic "AWS is down" runbook risks wasting critical response time attempting a mitigation that structurally can't work for this kind of incident.

  4. Review whether critical-path traffic should route through CloudFront VPC Origins at all, versus a more traditional public origin architecture with its own access controls, for the specific subset of your infrastructure where an outage has the highest business impact. VPC Origins offers real security and architecture benefits, but this incident is a data point that it's not risk-free relative to simpler alternatives.

  5. Push your AWS account team for specifics on the underlying constraint that triggered this, and what change AWS is making to prevent recurrence. AWS's public post-incident summaries are often light on the exact remediation; enterprise customers with TAM relationships should ask directly, since the answer affects whether this specific failure mode is meaningfully less likely to recur or just superficially patched.

  6. Model the CloudFront VPC Origins dependency explicitly in your next disaster recovery tabletop exercise. If your last DR exercise didn't include a CDN-layer failure scenario distinct from a regional outage, this incident is a concrete, recent example to build one around.

The broader lesson for cloud architecture

The instinct after any major cloud outage is to ask "should we go multi-cloud," and that's usually the wrong first question — multi-cloud architecture carries its own substantial complexity and cost, and most organizations get more resilience value from deeply understanding and testing against the specific failure modes of the single cloud provider they already use than from a partial, poorly-tested multi-cloud setup. The more useful question this incident raises is narrower and more actionable: does your team actually understand which of your AWS-dependent services would be affected by a regional failure versus a global service-layer failure versus a specific feature bug like this one, and have you tested your response to each category separately? Most organizations haven't, and that gap is the one this outage should actually close.