← Blog · Incident Response · June 19, 2026 · 7 min read · By Operate Engineering Team

Is It Us or Is It AWS? Triage for the First Fifteen Minutes of an Upstream Outage

AWS's July 16 CloudFront outage took 59 minutes to reach the status page. A triage protocol for deciding, in the first fifteen minutes, whether an incident is yours or upstream.

Is It Us or Is It AWS? Triage for the First Fifteen Minutes of an Upstream Outage

Is It Us or Is It AWS? Triage for the First Fifteen Minutes of an Upstream Outage

TL;DR To perform effective third-party outage triage, engineers must look for "differential telemetry"—signals where external synthetic monitors fail while internal system health checks remain green. Because provider status pages often lag behind impact by nearly an hour, establishing at-fault attribution requires a protocol that analyzes error fingerprints, symptom shapes (global vs. zonal), and secondary dependency cascades.

07:45 UTC, July 16

The morning of July 16, 2026, began like any other for SRE teams across the globe, until it didn't. At exactly 07:45 UTC, checkout pages began throwing 500 errors, API latency spiked to triple-digit seconds, and Slack channels erupted with the same frantic question: "Did we just deploy something?"

In hundreds of war rooms, the initial instinct was to blame the internal stack. Teams looked at their Grafana dashboards—they were green. They looked at their last CI/CD triggers—nothing since yesterday. They checked the AWS Service Health Dashboard—it was a sea of reassuring green checkmarks. It would remain that way for another 59 minutes.

The aws cloudfront outage july 2026 was not a complete blackout, but a specific failure of CloudFront VPC Origins. This subtlety meant that while some traffic flowed, anything relying on many-to-one mapping between edge locations and private VPC backends was effectively dead. By the time AWS acknowledged the issue at 08:44 UTC, teams had already spent an hour rolling back healthy code and paging innocent database administrators.

The attribution problem

The most expensive hour of any incident is the one spent investigating the wrong cause. Under the high-pressure environment of a live outage, third-party outage triage often fails because of "blame-the-deploy" bias. Human nature dictates that if our site is down, we must have broken it.

When an upstream provider outage response is delayed by late status updates, the burden of proof shifts to the engineering team. To minimize Mean Time to Acknowledge (MTTA), you must prove what isn't broken as fast as you prove what is. The goal of the first fifteen minutes is not to fix the cloud—you can't—but to stop your team from making the situation worse by thrashing your own infrastructure in a desperate attempt to find a local "fix."

What the symptom shape tells you

Not all outages look the same. The "shape" of the errors can tell you where the fault lies before you ever see an official status update.

Differential telemetry: the fastest honest signal

Standard monitoring often fails during an upstream outage because "green" dashboards only tell you that your servers are running, not that they are reachable. You need differential telemetry.

Compare your internal health checks (is the process running? is the DB connected?) against external synthetic monitors (can a probe in Tokyo reach the landing page?). If your internal metrics say the system is healthy but your external probes are failing globally, you have successfully shifted the blame upstream.

Key Takeaway: Effective third-party outage triage relies on comparing internal "health" against external "reachability" to immediately isolate whether a failure is local or at the provider's edge.

Peer signal is your second most valuable data point. During the first fifteen minutes, check community-led aggregators like Downdetector or social media. If five other companies in your industry are reporting the same "CloudFront 502" spike, you can stop looking at your last Kubernetes config change.

Why the status page is always late

According to [IncidentHub], the AWS first public status update on July 16 arrived 59 minutes after the "gray failure" began. This is not a failure of AWS's intent, but a result of their scale. A provider must verify that a failure is systemic and not a localized customer issue before they update a status page that moves global markets.

Waiting for a status page to turn red is a reactive strategy that guarantees at least an hour of downtime. You must monitor the internet’s "vital signs" yourself. According to [Network World], massive spikes in global network latency or BGP route flapping often precede official cloud service notifications by 30 to 45 minutes.

The control-plane pattern

The July 16 event is part of an escalating pattern of global control-plane failures. This includes the GCP outage of June 2025, the Azure "Identity Gate" of October 2025, and the Cloudflare outage of November 2025.

The dangerous myth of multi-region architecture is that it protects you from these events. It doesn't. When a global service like CloudFront or an Identity Provider (IdP) fails, it fails across all your regions simultaneously. This is a "shared fate" failure. According to [The Tech Notes], the increasing centralization of these global control planes means that a single configuration error at a provider can bypass even the most robust multi-region failover strategies.

Second-order dependencies

An is aws down or is it us investigation must also account for the "cascade." You might not be using the failing AWS service directly, but your vendors are.

During the July outage, identity providers like Frontegg and platforms like Canvas and Blackboard were impacted. This caused a second-order failure where enterprise users were locked out of otherwise healthy applications. Mapping your "Dependency Inventory" is critical—you need to know not just what you run, but what the people you pay run.

The fifteen-minute protocol (checklist)

When the alerts fire, follow this rigid sequence to establish attribution:

  1. Rule out the last deploy (Minutes 0-3): Check your CI/CD pipeline. If no change was merged in the last 20 minutes, assume your code is innocent.
  2. Analyze the symptom shape (Minutes 3-7): Are the errors 502/504s from the edge? Is it global or zonal? Check if your "VPC Origin" traffic specifically is what's failing.
  3. Fire differential checks (Minutes 7-10): Compare internal app health against external synthetic probes. If internal is green and external is red, look upstream.
  4. Audit the dependency inventory (Minutes 10-13): Check if your key third-party vendors (IdP, CDN, Payment Gateway) are reporting issues on their own (often faster) status pages.
  5. Decide the path (Minutes 13-15):
    • Workaround: Can we bypass the failing service (e.g., move from VPC Origin to Public Origin)?
    • Failover: Is this a regional failure where we can shift traffic?
    • Communicate-and-Wait: If it's a global provider failure with no bypass, stop investigating and start communicating with customers.

Rehearsed workarounds beat clever ones

At 09:21 UTC during the July 16 outage, AWS suggested a workaround: switching from VPC Origins to standard origins. For most teams, this required a manual Infrastructure-as-Code (IaC) change and a full redeploy of their CDN stack—a risky move in the middle of a crisis.

The teams that recovered fastest were those with "rehearsed workarounds." They had already tested the toggle in their Terraform or CloudFormation and knew the security implications of moving to a public origin. A clever idea during an outage is a liability; a rehearsed script is an asset.

What to fix next week

Once the dust settles from an upstream outage, don't just write "waiting for AWS" in your postmortem. Use the following week to harden your response:

At Operate, we see this cycle constantly: teams lose precious time because they lack the unified context to rule out their own systems. Operate integrates with your entire stack—from your last deploy in GitHub to your VPC flow logs and external monitors—to give you an immediate "Is it us?" answer. By correlating error fingerprints with provider signals, Operate acts as an automated triage partner, ensuring that when AWS has a bad day, your team doesn't spend it investigating the wrong thing.

Sources & further reading

#incident response#aws outage#sre#triage protocol#cloudfront outage