top of page

The Check Engine Light That Broke Microsoft: Inside a Cloud Failure That Should Terrify the AI Industry

11 minutes ago
12 min read
A dark data center aisle lined with black server racks, one panel glowing amber and casting a pool of warning light across the floor

On November 12, Microsoft's cloud infrastructure began marking servers unhealthy, removing capacity from service, and triggering a disruption across its enterprise ecosystem. Was this a defective health check, a cascading infrastructure failure, or something deeper? The answer could tell us a great deal about the risks of the increasingly automated world we're building.


We've all experienced it.


You're driving down the road, and suddenly that little amber check-engine light illuminates your dashboard.


You pull into a mechanic's shop expecting the worst. Maybe the engine is failing. Maybe you're about to spend thousands of dollars.


Instead, the mechanic connects a diagnostic tool and discovers that the engine is running perfectly fine.


The problem is a sensor.


A faulty oxygen sensor, an intermittent electrical connection, or a component reporting something that isn't actually happening. The warning system designed to detect mechanical failure has itself become the source of the warning.


Now imagine something considerably more disturbing.


What if your car didn't merely illuminate a warning light? What if its computer automatically shut off the engine whenever that sensor reported a problem, regardless of whether the engine was actually failing?


And what if millions of vehicles shared that same flawed detection system?


You wouldn't have an engine problem anymore.


You'd have a transportation crisis.


Something potentially similar unfolded inside Microsoft's enormous cloud infrastructure on Thursday, November 12, 2026.


And while the immediate disruption involved email, collaboration, and enterprise software, the implications extend far beyond Microsoft.


They reach into cloud architecture, automated decision-making, artificial intelligence, infrastructure reliability, and the increasingly uncomfortable question of who, or what, is actually controlling the systems we depend on.


The infrastructure started declaring itself unhealthy

The first indications of trouble emerged on the morning of November 12. Microsoft opened an Exchange Online incident, EX1550543, at 11:17 a.m. Eastern, with users unable to reach their mailboxes through Outlook on the web, MAPI, Exchange ActiveSync, or the REST API.


By early afternoon the problem had widened. A second advisory, MO1550821, opened at 1:26 p.m. Eastern covering the Microsoft 365 suite as a whole. Downdetector recorded nearly 130,000 reports at the peak, although those reports represent user submissions, not 130,000 individually verified system failures.


Businesses struggled to access Exchange Online mailboxes. Outlook users couldn't reliably send or receive email. Teams calendar functions, SharePoint features that touch mail, Microsoft 365 Copilot, Microsoft Defender XDR, Microsoft Purview, Microsoft Graph, Intune, Planner, To Do, Power BI, and Universal Print all showed related failures. Microsoft's own language was precise about the mechanism: features that interact with Exchange Online and email services were impacted, and elements that don't depend on that interaction remained functional.


This wasn't merely a consumer inconvenience. It was an interruption affecting the infrastructure businesses use to communicate, authenticate workflows, exchange information, and coordinate operations.


Microsoft's first description pointed to elevated infrastructure load across multiple regions. That's the familiar story: too many requests, insufficient capacity, or some combination of both.


Then the company said something considerably more interesting. The elevated load wasn't driven by an increase in traffic. It was driven by a number of servers being unexpectedly unavailable, straining the remaining infrastructure.


Why had those servers become unavailable? They were failing automated health checks.


That's the check-engine light. And in modern cloud architecture, failing such a check has consequences well beyond displaying an amber warning.


Servers judged unhealthy get removed from the active pool of machines handling customer requests. That logic is reasonable. If a server is malfunctioning, you don't want to keep sending customers to it. But the automation doesn't stop to ask whether the server is actually broken, or whether the thing doing the judging is.


When the safety system becomes part of the failure

Modern cloud computing depends on enormous amounts of automation. Thousands of servers, network connections, storage systems, application processes, and supporting services operate in carefully orchestrated environments. Human engineers can't individually monitor and manage every component.


So automated systems continuously assess operational health. A server responds too slowly? Flag it. A process becomes unresponsive? Restart it. A machine fails enough health checks? Remove it from service. An application loses capacity? Redistribute traffic.


These mechanisms are fundamental to making massive cloud services reliable. Under normal conditions they work remarkably well.


But there's a critical distinction between detecting a failure and correctly understanding its cause.


Consider a hypothetical cluster with 1,000 servers. A software problem affects the component that reports whether servers are healthy. Within minutes, the monitoring system incorrectly classifies 300 machines as unavailable. The system removes them from active service. Now the remaining 700 servers must handle the workload previously distributed across 1,000. Their utilization increases. Response times deteriorate. Some begin failing their own health checks. More machines are removed. The surviving infrastructure becomes even more overloaded.


Eventually, the automated protection mechanism designed to keep the service operational contributes to its collapse.


In engineering terms, this is a cascading failure driven by positive feedback. The deeply uncomfortable part is that every individual automated decision looks reasonable in isolation. A health check failed. A machine was removed. Traffic was redirected. The system followed its instructions.


The problem isn't that the automation disobeyed its programming. The problem is that it obeyed flawed logic too effectively.


To be clear, that thousand-server scenario is an illustration of a failure mechanism, not a reconstruction of Microsoft's incident. But Microsoft's own advisories keep pointing in that direction.


What Microsoft actually admitted

Strip out the corporate framing and the sequence is right there in the service health history.


Microsoft first identified that affected servers were failing automated health checks, causing them to become unavailable, and said this may be related to a recent change to a component involved in processing those checks. Then the company sharpened it: the failed health checks may originate from a specific component on the affected servers responsible for processing them. Engineers deployed a targeted change to bypass that component on a subset of servers to test whether availability returned, and took steps to prevent additional servers from being removed from service.


Read that again. Microsoft was working on two problems at once. It was trying to fix the servers. It was also trying to stop its own infrastructure management process from making the situation worse.


Later the company validated an alternative health-check method on a subset of infrastructure, which let those servers return to service, and began applying the change more broadly. It also started building an automated recovery process to continually detect and restart unresponsive servers, to keep them in service.


There was also a detail that quietly contradicts the simple version of the story. Microsoft said it hadn't identified any recent changes that correlate with the start of impact, even after earlier floating a recent change to the health-check component as a possible cause. Those two statements don't fully reconcile, and the difference matters. If a change caused this, you have a deployment problem. If no change caused it, you have something worse: a system that drifted into failure on its own.


By evening, the picture had gotten harder, not easier. Microsoft reported that servers returned to service initially stayed healthy and then became unresponsive again once they began receiving traffic. Engineers found that a process on the affected servers responsible for establishing secure connections was becoming overwhelmed, causing the servers to stop processing requests. Affected machines were showing elevated processor usage while handling requests. The company described the underlying condition as sustained traffic management imbalances and admitted that one change applied to improve serviceability didn't take as expected.


That's the moment the check-engine-light analogy stops being sufficient. A defective sensor is a bad afternoon. A defective sensor plus an engine that genuinely struggles under load plus a recovery process that reintroduces the load is a different category of problem entirely.


Four explanations, and they aren't mutually exclusive

A flawed health-check component. A software defect or configuration change caused servers to be incorrectly classified as unhealthy, removing capacity and starting the cascade.


A real processing bottleneck. The servers were genuinely struggling with a particular workload, producing legitimate health-check failures. Removing servers then amplified an underlying capacity problem.


An interaction between traffic routing and automated recovery. When servers went unavailable, redirected requests overloaded the alternative infrastructure. Restarting machines and returning them to service exposed them to the same conditions that caused the original failure.


An ordinary engineering mistake. A small configuration change, software regression, or overlooked dependency produced consequences far beyond its intended scope.


None of these exclude the others. A software defect can trigger a health-check failure. The failure can produce a capacity shortage. The capacity shortage can cause real server failures. Recovery attempts can then hit new overload. What began as a small problem evolves into a self-sustaining incident with no single root.


Microsoft hadn't published a root cause as of publication. The incidents were still open, with the next scheduled update at 3:30 a.m. UTC on November 13.


Was this an AI-coding disaster?


Predictably, the speculation started immediately. Some observers blamed AI-generated software. Others said Microsoft's growing reliance on automation had finally caught up with it. Still others suggested a cyberattack. There's no verified evidence for any of it, and no established evidence that an adversary triggered this.


Dismissing the claims doesn't dismiss the questions underneath them, though.


The rise of AI-assisted development creates a legitimate engineering concern. We're increasing the speed at which software can be written, modified, deployed, and integrated into production. AI tools produce enormous quantities of functional code. But code that compiles, passes a test suite, and works correctly under normal conditions is not necessarily code that behaves safely under extraordinary conditions. Especially when that code operates infrastructure responsible for keeping other systems alive.


A subtle error in a user-facing application inconveniences a customer. A subtle error in infrastructure health monitoring can remove thousands of servers from production. That's an entirely different category of risk.


And it doesn't require artificial intelligence to introduce the defect. Human engineers have been creating cascading infrastructure failures for decades. The question is whether AI-assisted engineering, accelerated deployment cycles, and increasingly autonomous operations make certain failures easier to introduce, harder to understand, or faster to propagate. The answer depends entirely on the safeguards around their use.


Or maybe Microsoft was just sloppy

There's a less exotic possibility that shouldn't be skipped.


Maybe Microsoft made an engineering mistake. A bad configuration. An insufficiently tested change. An overlooked dependency. A monitoring system that wasn't adequately isolated from the infrastructure it controlled. And a health-check processor with enough authority to pull capacity out of production at scale, which is a design decision, not an accident.


In a company operating at Microsoft's scale, even mundane mistakes become extraordinarily expensive. The 2024 CrowdStrike incident demonstrated how a defective security software update could disrupt Windows systems across airlines, healthcare organizations, banks, and other industries. That wasn't an AI uprising or a sophisticated attack. It was an ordinary software failure with extraordinary consequences.


The lesson isn't that the failure was sophisticated. It's that simple mistakes propagate through sophisticated systems, which is precisely why large infrastructure providers are expected to design around them. We shouldn't demand a world where engineers never make mistakes. That world doesn't exist. We should demand systems where a mistake in one component doesn't cripple an entire ecosystem.


The cloud has a single-point-of-failure problem

For two decades the industry has encouraged businesses to move infrastructure into the cloud. Why maintain your own email servers? Why operate local storage? Why manage application infrastructure when Microsoft, Amazon, or Google can do it for you?


The economic and technical arguments are real. Cloud providers offer capabilities, geographic reach, security resources, and operational sophistication most organizations could never afford independently.


But consolidation also concentrates operational risk.


Consider an organization relying on Microsoft for email, authentication, document management, collaboration, cybersecurity monitoring, enterprise applications, and AI-powered workflow automation. On paper, those are separate services. In practice, they share dependencies. A disruption in Exchange Online cascades into Teams calendar functions, Microsoft Graph API calls, Copilot's access to work data, Safe Links verification, and Purview audit search. Microsoft listed exactly that on November 12.


Not every component of every product was down. That's the point. You can have ten different applications and still have one critical dependency.


The same problem exists in supposedly redundant architectures. A company may run two separate applications, duplicate its databases, and deploy backup workflows. But if both depend on the same identity provider, cloud network, DNS service, or centralized control plane, they fail together. Redundancy is not independence.


And moving from one cloud provider to another isn't automatically a solution either. True resilience requires understanding the underlying dependencies, preserving recoverable state, and regularly testing whether critical operations continue when a major provider becomes unavailable. For organizations that depend on these systems to operate, that should be an architectural requirement rather than an optional luxury.


Now introduce autonomous agents

This is where the implications get larger.


We're entering an era where AI does more than answer questions or generate software. Agents are being designed to monitor systems, diagnose problems, execute workflows, deploy code, manage infrastructure, and respond to operational conditions. In many applications that's an enormous opportunity. An AI system could identify a failing server before a human notices the symptoms. It could isolate malicious traffic, migrate workloads, restore services, and read logs simultaneously.


But automation also introduces a dangerous possibility: what happens when the system making operational decisions is working from incorrect information?


Imagine an autonomous infrastructure agent observing deteriorating server response times. It concludes several machines are failing and removes them from service. The remaining infrastructure becomes overloaded. The agent detects worsening performance and removes more machines. A second agent attempts recovery by restarting processes. A third redistributes traffic. Each agent reacts to information generated partly by the actions of the others.


Without coordination, independent verification, and enforced limits, a collection of intelligent components can collectively produce an extraordinarily unintelligent outcome. No malicious intent required. No rogue AI necessary. The agents simply optimize their individual objectives while destabilizing the system as a whole.


That is not what Microsoft has said happened on November 12. It's a foreseeable risk for the next generation of autonomous infrastructure, and this incident is a concrete reason to examine it.


Who watches the watchdog?

There's a foundational question in systems engineering that becomes more relevant as automation expands.


Who verifies the mechanism responsible for verification?


If a monitoring system claims a server is unhealthy, what independently confirms that conclusion? If an automated remediation system removes hundreds of machines, what stops it from removing thousands? If recovery attempts make the system less stable, what halts the recovery? And if several independent services report failures simultaneously, how does the system distinguish a genuine infrastructure emergency from a defective shared monitoring component?


Robust architecture needs more than health checks. It needs independent observations, hard limits on destructive automation, protection against correlated failures, and the ability to recover without relying on the components that failed. Sometimes it needs a deliberately less sophisticated fallback. A manually controlled recovery path. A separate management environment. An independently preserved configuration. A verified rollback. A system that remains usable when the normal automation is unavailable.


The answer to automation failure isn't necessarily more automation. Sometimes the answer is ensuring automation can't exercise unlimited authority. That principle will matter more as AI agents take on responsibilities previously reserved for experienced systems engineers.


The questions Microsoft has to answer

Microsoft has substantial engineering expertise and operates infrastructure at a scale few companies can match. That doesn't make it immune to failure. It does create an obligation to explain serious incidents thoroughly.


The post-incident report should answer a few specific things. What caused the original health-check failures, and were servers incorrectly classified or were the checks detecting real processing problems? What process became overwhelmed, and why? Which component in the health-check path was bypassed, and what does that say about how it was isolated from production? Did any recent configuration change contribute, and if not, what does a spontaneous failure imply about drift in the fleet? Why did restored servers become unresponsive again under traffic? What safeguards existed to prevent large-scale capacity removal, and why were they insufficient? How far did shared dependencies extend the blast radius across Microsoft 365?


These are engineering and accountability questions, not accusations of criminal wrongdoing. They're also questions customers paying for enterprise-grade infrastructure have every right to ask.


The bigger warning

There's a temptation to file November 12 away as another embarrassing afternoon. Outlook stopped working. Businesses complained. Engineers scrambled. Everyone moved on.


That reading misses the larger issue.


We're building an interconnected digital economy on systems that monitor, manage, and repair themselves. Those systems have become extraordinarily capable and extraordinarily complicated. An organization can have redundant hardware, multiple data centers, sophisticated monitoring, intelligent traffic management, and automated recovery, and still experience a catastrophic disruption when those components fail together.


Growing adoption of AI-driven automation raises the stakes. The danger isn't that machines develop malicious intentions and decide to sabotage infrastructure. The near-term danger is that software empowered to make operational decisions encounters unexpected conditions, misreads them, and responds in ways that magnify the original problem. Or that the people building those systems move faster than their understanding of the dependencies they've created.


Microsoft may eventually trace this to something entirely mundane. A defective component. A bad configuration. An overloaded process. An avoidable operational mistake.


That wouldn't make the incident less significant. It might make it more significant, because it would show that even one of the most sophisticated technology companies on Earth still struggles with the consequences of ordinary failures inside highly automated infrastructure.


And as we move toward a future where autonomous agents design, deploy, operate, and repair the systems around us, that's a lesson worth learning now.


The most dangerous check-engine light isn't the one that fails to warn you of a problem. It's the one that convinces the entire system to shut itself down when nobody has established what's actually wrong.


Editor's note: This analysis reflects information available on the evening of November 12, 2026. Microsoft's final root-cause findings weren't available at publication, and both incidents remained open. The discussion of possible cascading failure mechanisms and future AI-agent risks is engineering analysis, not a claim that those mechanisms have been conclusively established in this incident.


Sources and further reading


Rich Washburn is a technologist, strategist, and Founder & Chief AI Architect of ARIA AI Labs, working at the intersection of AI, infrastructure, communications, and capital. He also serves as Managing Partner and Chief AI Officer at Eliakim Capital.

Comments


Animated coffee.gif
cup2 trans.fw.png

© 2018 Rich Washburn

bottom of page