Skip to main content

Public Software Failure Postmortems

Last updated . Sources are named and dated inline - how we source claims.

Eight software failures that actually happened, to named organizations, on dates you can check - where every claim on this page links to a regulatory filing, a public inquiry, a court judgment, or a published root cause analysis.

These are not illustrations. A technician missed one server out of eight. A template declared twenty-one fields and the code supplied twenty. A certificate expired and nobody noticed for ten months. Each of these is technical debt with a paper trail, and the paper trail is the point.

How This Page Differs From Our Case Studies

This site publishes ten tech debt case studies with names like MedTech Dynamics, LegacyBank, and ShopSphere. Every one of those companies is fictional. They are composite scenarios: the situations and the arithmetic are drawn from real-world patterns, but the organizations do not exist and the figures are illustrative rather than measured. Each of those pages carries a disclosure banner saying exactly that, injected by the build system so it cannot be forgotten or quietly removed.

Composites are genuinely useful. They let a page walk through a full remediation playbook without the confidentiality problems that come with naming a real employer, and the arithmetic transfers to your situation. But a composite can never settle an argument, because the honest answer to "did that really happen?" is "not exactly."

This page is the counterweight. Every incident below is real, named, and dated. Every number resolves to a document published by a regulator, a legislature, a national audit office, a court, a statutory inquiry, or the vendor whose software failed. Where a widely repeated figure could not be traced to a primary source, it does not appear - and the last section explains which figures those were and why they were left out.

Why the grouping is by debt type, not by date. Listing failures chronologically produces a museum. Grouping them by the kind of debt that caused them produces a diagnostic. Two incidents fourteen years apart can share a root cause exactly, and when they do, the repetition is the lesson. Read the sourcing policy if you want to know how these citations are checked.

Deployment and Release Process Debt

The debt here is not in the application code. It is in the machinery that moves code to production: manual steps with no second pair of eyes, dead code left callable, and update pipelines that reach every machine at once with no way to stop.

Knight Capital Americas, 1 August 2012

$460M+

Loss realized on unwanted positions, in the SEC's words "over $460 million"

Source: US SEC, Release No. 70694, 2013

45 minutes

Approximate duration of the event, across 4 million executions in 154 stocks

Source: US SEC, Release No. 70694, 2013

1 of 8

Servers that did not receive the new code during a manual deployment

Source: US SEC, Release No. 70694, 2013

What Happened

Knight Capital deployed new order-routing code to its SMARS system in stages across eight servers between 27 July and 1 August 2012. The SEC found that "one of Knight's technicians did not copy the new code to one of the eight SMARS computer servers." When trading opened on 1 August, seven servers processed orders correctly and the eighth did not. Within approximately forty-five minutes the firm had accumulated positions it never intended to hold.

The Technical Debt

Three separate debts compounded. First, dead code: functionality called "Power Peg" had been out of use since 2003, but the SEC records that "despite the lack of use, the Power Peg functionality remained present and callable." Second, an untested change: in 2005 Knight moved a cumulative-share tracking function within the Power Peg code and, in the SEC's words, "did not retest the Power Peg code after moving the cumulative quantity function to determine whether Power Peg would still function correctly if called." Third, flag reuse: the new feature "repurposed a flag that was formerly used to activate the Power Peg code." Setting that flag on a server still carrying the old code activated seven-year-old, untested logic.

What the Primary Source Says

The SEC's order is unusually direct about process rather than code. It finds that Knight "did not have a second technician review this deployment" and that "Knight had no written procedures that required such a review." A later paragraph repeats the point: Knight "did not have written code development and deployment procedures for SMARS (although other groups at Knight had written procedures), and Knight did not require a second technician to review code deployment in SMARS." The order imposed a civil money penalty of $12,000,000 alongside the trading loss.

Transferable lesson: deleting dead code is not housekeeping, it is risk reduction. Code that is unreachable in practice but still callable in principle is a loaded weapon, and a repurposed feature flag is the trigger. Automate deployment so that "some hosts got it" is not a reachable state.

CrowdStrike Falcon Channel File 291, 19 July 2024

8.5 million

Windows devices affected, on Microsoft's estimate - not CrowdStrike's figure

Source: Microsoft, 20 July 2024

21 vs 20

Input fields the template declared, against the number the sensor code supplied

Source: CrowdStrike, External Technical Root Cause Analysis, 2024

12 tests

Automated test cases, all of which used a wildcard in the twenty-first field

Source: CrowdStrike, External Technical Root Cause Analysis, 2024

What Happened

A routine content update to the Falcon sensor crashed Windows hosts worldwide. CrowdStrike's own analysis describes the mechanism precisely: the new template instances specified "a comparison against the 21st input value. The Content Interpreter expected only 20 values. Therefore, the attempt to access the 21st value produced an out-of-bounds memory read beyond the end of the input data array and resulted in a system crash." This was content, not sensor code, which is why it reached production without going through a normal software release.

The Technical Debt

A validation gap that existing tests were structurally incapable of finding. Twelve automated test cases existed, but the analysis records that the channel file used for them "included a regex wildcard matching criterion in the 21st field for all Template Instances, meaning that execution of these tests during development and release builds did not expose the latent out-of-bounds read." A wildcard in that position never exercises the dangerous path. The Content Validator, meanwhile, "contained a logic error" because "it based its assessment on the expectation that the IPC Template Type would be provided with 21 inputs" - it validated against the declaration rather than against what the code actually did.

What the Primary Source Says

CrowdStrike's remediation list is effectively an inventory of the debt. It committed to staged rollout with canary testing, noting that "new Template Instances that have passed canary testing are to be successively promoted to wider deployment rings or rolled back if problems are detected." It added bounds checking to the Content Interpreter, expanded Content Validator checks, began fuzz testing, and engaged two independent third-party security reviews. The structural fix is the one about blast radius: customers can now "choose where and when Rapid Response Content updates are deployed."

Transferable lesson: a data or configuration path that bypasses your release process is a release process, just an unmanaged one. If content updates reach every host simultaneously, no amount of testing gives you a rollback. Ask which of your pipelines can change production behaviour without a staged rollout - see DevOps and CI/CD debt.

Dependency and Patching Debt

Both of these turn on the same question: do you know where a given library is running? In one case the answer was wrong for one system. In the other, it was unanswerable for most of the internet.

Equifax, May to July 2017

145.5M

Individuals whose personal information the attackers accessed, at minimum

Source: US GAO, GAO-18-559, 2018

10 months

Period an expired certificate left encrypted traffic uninspected before the breach

Source: US GAO, GAO-18-559, 2018

CVSS 9.8

Base score of CVE-2017-5638, the Apache Struts flaw involved

Source: NIST National Vulnerability Database

What Happened

Attackers entered through an Equifax online dispute portal running an unpatched Apache Struts vulnerability and remained active from May to July 2017. GAO records that the breach "resulted in the compromise of records containing the PII of at least 145.5 million consumers in the U.S. and nearly 1 million consumers outside of the U.S." Note the figure carefully: 145.5 million is GAO's audited number. The 147 million figure that circulates widely does not appear in this report.

The Technical Debt

Three failures, each independently survivable, fatal in combination. Patching: a notice about the vulnerability circulated internally, but GAO records that "the recipient list for the notice was out-of-date and, as a result, the notice was not received by the individuals who would have been responsible for installing the necessary patch," and that a network scan a week later "did not detect the vulnerability on the online dispute portal." Monitoring: "the misconfiguration was due to an expired digital certificate. The certificate had expired about 10 months before the breach occurred, meaning that encrypted traffic was not being inspected throughout that period." Segmentation: "because individual databases were not isolated or 'segmented' from each other, the attackers were able to access additional databases beyond the ones related to the online dispute portal."

What the Primary Source Says

GAO quantifies the lateral movement that flat networking permitted: attackers expanded beyond the three databases associated with the dispute portal "to include an additional 48 unrelated databases" and ran "approximately 9,000 queries, a portion of which successfully returned data." One point of attribution hygiene: GAO-18-559 never names CVE-2017-5638. It refers only to "the Apache Struts Web Framework" and a vulnerability US-CERT had identified days earlier. The CVE identifier is correct as a fact, but its source is the National Vulnerability Database, not GAO.

Transferable lesson: an out-of-date distribution list is technical debt. So is a certificate with no expiry monitoring. Patching debt only becomes a breach when detection debt and segmentation debt are there to let it run - see security and supply chain debt.

Log4Shell, December 2021

CVSS 10.0

Maximum base score for CVE-2021-44228, network-reachable with no privileges required

Source: NIST National Vulnerability Database

33,000 hours

Dedicated to Log4j response by a single US federal cabinet department

Source: Cyber Safety Review Board, DHS, 2022

A decade

How long the Board expects vulnerable instances to remain in systems, or longer

Source: Cyber Safety Review Board, DHS, 2022

What Happened

A remote code execution flaw in Apache Log4j 2, a logging library embedded in an enormous share of Java software, became public in December 2021. The US Cyber Safety Review Board, convened under the Department of Homeland Security, produced its first-ever report on the event. Its central judgement is not about the flaw but about its persistence: "the Log4j event is not over. The Board assesses that Log4j is an 'endemic vulnerability' and that vulnerable instances of Log4j will remain in systems for many years to come, perhaps a decade or longer."

The Technical Debt

Transitive dependency debt in its purest form: organizations could not answer where the library was running. The Board records that "there is no comprehensive 'customer list' for Log4j, or even a list of where it is integrated as a sub-system," and that "enterprises and vendors scrambled to discover where they used Log4j." Most of the exposure was indirect - Log4j arrived not because teams chose it but because something they chose depended on it.

What the Primary Source Says

The Board's finding on software bills of materials is the most quietly damning line in the report. Having spoken with representative groups for organizations already using SBOMs, it records that "none reported having leveraged them to identify vulnerable deployments of Log4j." It attributes this to SBOMs being "limited, for example by variances in field descriptions and a lack of version information about catalogued components, and lack of automation on the consumption end." The point is not that inventories are worthless; it is that an inventory nobody can query under pressure is not yet an asset.

Transferable lesson: the recovery time for a dependency emergency is set long before the emergency, by whether you can answer "where is this version running?" in minutes rather than weeks. Test that question before you need it - see dependency management.

Migration and Platform Replacement Debt

Two large public replacements of working systems, both of which went live on a date chosen before anyone knew whether the software would be ready, and both of which compressed testing to protect that date.

TSB Bank Platform Migration, April 2018

225,492

Complaints received between 22 April 2018 and 7 April 2019

Source: UK Financial Conduct Authority, Final Notice, 2022

8 months

From go-live until TSB returned to business as usual, on 10 December 2018

Source: UK Financial Conduct Authority, Final Notice, 2022

GBP 48.65M

Combined FCA and PRA penalties, both issued on 20 December 2022

Source: UK Financial Conduct Authority and Prudential Regulation Authority, 2022

What Happened

Over the weekend of 20 to 22 April 2018, TSB moved approximately five million customers onto a new banking platform built and operated by a sister company within the Sabadell group. The independent review commissioned by TSB's own board reached a two-part conclusion: "the new platform was not ready to support TSB's full customer base" and "SABIS was not ready to operate the new platform." Internet and mobile banking became, in the review's phrase, "unstable and almost unusable."

The Technical Debt

Testing debt created by a fixed date. The review states plainly that the platform "was not ready at Go Live because it had not been sufficiently tested or proved." A seven-month window planned for live proving and non-functional testing evaporated as functional testing overran, so the two ran in parallel instead of in sequence, and "the dedicated regression testing phase included in the Defender Plan did not take place." Most tellingly, when performance tests failed, the targets moved: "test targets were lowered after tests did not pass at the original target load," and the summary results "did not make it clear that the targets had been changed."

What the Primary Source Says

The review traces the failure back to programme governance rather than to any single technical defect. It calls the timetable "ambitious and unrealistic" and describes "the pattern of setting a desired end date and then creating a plan to fit that date, whether or not it was realistic or involved taking too much risk." On oversight it is equally direct: the board "should have done more to assess, and should have provided a stronger challenge to, the Executive's explanation of the adequacy of testing," and a board meeting shortly before go-live "was a missed opportunity to pause and reflect."

Transferable lesson: when a test target is lowered so a test can pass, the result is not evidence, it is paperwork. Any migration whose go-live date was fixed before its readiness criteria is carrying schedule debt that will be paid by customers - see rewrite versus refactor.

Healthcare.gov Launch, 1 October 2013

$56M to $209M

Growth in marketplace obligations from September 2011 to February 2014

Source: US GAO, GAO-14-694, 2014

$175M+

Cost by June 2014 of a replacement contract awarded at $91 million in January 2014

Source: US GAO, GAO-14-694, 2014

2 months

Time taken to recover the website for high consumer use after launch

Source: US HHS Office of Inspector General, OEI-06-14-00350, 2016

What Happened

The federal health insurance marketplace launched on 1 October 2013 and, in GAO's restrained wording, "many users were unable to successfully access and use the Healthcare.gov website." GAO's overall finding is that the Centers for Medicare and Medicaid Services "undertook the development of Healthcare.gov and its related systems without effective planning or oversight practices, despite facing a number of challenges that increased both the level of risk and the need for effective oversight."

The Technical Debt

Requirements debt incurred deliberately, for speed. GAO found that "to be expedient, CMS issued task orders to develop the federally facilitated marketplace (FFM) and federal data services hub (data hub) systems when key technical requirements were unknown, including the number and composition of states to be supported and, importantly, the number of potential enrollees." Building a system without knowing its load is a decision, and the interest arrived on schedule: CMS "incurred significant cost increases, schedule slips, and delayed system functionality for the FFM and data hub systems due primarily to changing requirements that were exacerbated by oversight gaps."

What the Primary Source Says

On the launch decision itself, GAO records that CMS moved an assessment of readiness "from March to September 2013 - just weeks before the launch - and did not receive required approvals. As a result, CMS launched Healthcare.gov without verification that it met performance requirements." That September readiness review was partial: "development and testing were not fully completed and continued past this date." The HHS Office of Inspector General, reviewing the same events, identified the deeper cause as organizational rather than technical: "most critical was the absence of clear leadership, which caused delays in decisionmaking and a lack of clarity in project tasks," and CMS "continued on a failing path despite signs of trouble, making rushed corrections that proved insufficient."

Transferable lesson: moving a readiness review closer to launch does not make a system readier, it just shortens the window in which bad news can still change the outcome. A go-live gate that cannot return "no" is not a gate.

Requirements and Safety Assessment Debt

The incident in this section killed people. It is included because the documentation and reassessment failures behind it are ordinary engineering failures that most teams would recognise in their own work, and because the official review says so explicitly.

Boeing 737 MAX MCAS, 2018 and 2019

Lion Air flight 610 crashed on 29 October 2018, killing all 189 passengers and crew; one Indonesian rescue diver also died during recovery operations. Ethiopian Airlines flight 302 crashed on 10 March 2019, killing all 157 passengers and crew. The US House Committee on Transportation and Infrastructure records the combined toll as "the tragic and preventable deaths of 346 people."

Source: US House Committee on Transportation and Infrastructure, Final Committee Report, 2020

What Happened

The Manoeuvring Characteristics Augmentation System, known as MCAS, was flight control software added to the 737 MAX. After the two crashes, the Federal Aviation Administration convened a Joint Authorities Technical Review, chaired by former National Transportation Safety Board chairman Christopher Hart and staffed by twenty-eight members from the FAA, NASA and nine civil aviation authorities. Its report was submitted on 11 October 2019.

The Technical Debt

Fragmented documentation of a safety-critical function. The review found that "the MCAS was not evaluated as a complete and integrated function in the certification documents that were submitted to the FAA," and that "the lack of a unified top-down development and evaluation of the system function and its safety analyses, combined with the extensive and fragmented documentation, made it difficult to assess whether compliance was fully demonstrated." Because the aircraft was certified as an amendment to an existing type, many deliverables were revisions of older documents, so the description of MCAS ended up "fragmented among several documents." The review also notes the design reused "data, architecture, and assumptions" from an earlier configuration "without sufficient detailed aircraft-level evaluation of the appropriateness of such reuse."

What the Primary Source Says

On the failure to revisit safety analyses as the design changed, the review is specific: it identified areas "where the certification deliverables were not updated during the certification program to reflect the changes to this function within the flight control system. In addition, the design assumptions were not adequately reviewed, updated, or validated; possible flight deck effects were not evaluated; the SSA and functional hazard assessment (FHA) were not consistently updated; and potential crew workload effects resulting from MCAS design changes were not identified." Its recommendations follow directly: regulators "should refuse to accept function descriptions that are fragmented among several documents," and aircraft functions "should be assessed, not in an incremental and fragmented manner, but holistically at the aircraft level."

Transferable lesson: documentation debt becomes safety debt at the moment a design changes and the analysis does not change with it. If a function's behaviour is described across several documents that are revised independently, no reviewer ever sees the whole function - which is exactly the condition under which a hazard assessment stays quietly out of date.

Evidence and Defect Accountability Debt

The final incident is the one where the software defects mattered least and the institutional response to them mattered most. It is the clearest demonstration on this page that "the system says so" is a claim requiring evidence.

Post Office Horizon, United Kingdom

About 1,000

People the Inquiry Chair finds were likely prosecuted and convicted on Horizon evidence

Source: Post Office Horizon IT Inquiry, Volume 1, HC 1119, 2025

About 10,000

Eligible claimants in the financial redress schemes, a number expected to rise

Source: Post Office Horizon IT Inquiry, Volume 1, HC 1119, 2025

What Happened

Horizon was the accounting system used across United Kingdom Post Office branches from 1999 onwards. Where it showed a shortfall in a branch's accounts, sub-postmasters were held responsible. Many repaid money they did not owe; many were prosecuted. The statutory public inquiry chaired by Sir Wyn Williams published Volume 1 of its final report on 8 July 2025, recording that "many hundreds of people have been convicted, wrongly, of criminal offences, and many thousands of people have been held responsible, wrongly, for losses which were illusory, as opposed to real." The report also documents deaths by suicide and attempted suicide that families and individuals attributed to these events.

The Technical Debt

The High Court settled the technical question in December 2019, in the Horizon Issues judgment of Mr Justice Fraser. On whether the system could produce false shortfalls, the judgment answers that it was possible for bugs, errors or defects "to cause apparent or alleged discrepancies or shortfalls relating to Subpostmasters' branch accounts or transactions," and then goes further: "all the evidence in the Horizon Issues trial shows not only was there the potential for this to occur, but it actually has happened, and on numerous occasions."

What the Primary Source Says

The finding that dismantled the institutional position concerns risk rather than certainty. The judgment holds that there was "a significant and material risk of inaccuracy in branch accounts as a result of bugs, errors and defects in the Horizon System," and concludes that across both generations of the system, covering 2000 to 2010 and 2010 to 2017, Horizon "was therefore not 'extremely unlikely' to be the cause of shortfalls in branches, as contended for by the Post Office." The judgment also records that there were "plainly more bugs in Horizon than Fujitsu itself was aware of."

Transferable lesson: every system that produces figures people are held to is making an evidential claim, and someone will eventually have to defend it. Known-defect registers, audit trails, and the ability to reproduce a past calculation are not bureaucracy. The absence of them is the debt that turns a software bug into an injustice.

What We Could Not Source

A page about documented failures is only worth reading if its refusals are visible too. Each item below was researched, could not be supported by the primary document, and was therefore left out of the sections above.

Southwest Airlines, December 2022

This incident is widely described as a case of deferred crew-scheduling modernization, and it was researched for inclusion on that basis. The United States Department of Transportation consent order does not support that framing. The order is a consumer-protection action concerning call-centre assistance, flight-status notifications and refunds; it makes no finding attributing the disruption to scheduling software or ageing technology. On the contrary, it states that the Department "is closing its investigation into whether Southwest engaged in unrealistic scheduling of flights" and "is not making a finding that Southwest did, or did not, engage in unrealistic scheduling." The order assesses $140,000,000 in compromise of civil penalties, of which $35,000,000 is payable to the US Treasury and the remainder is offset against passenger compensation. Any account blaming the crew-scheduling system is commentary, not regulatory finding, so this incident appears here rather than above.

Source: US Department of Transportation, Consent Order 2023-12-11, 2023

Individual Figures Left Out

  • The total cost of the TSB migration. The frequently quoted figure appears in neither the independent review nor either regulator's final notice. The review examines causes, not costs.
  • A count of TSB customers "affected". No primary document gives one. What exists is the migrated customer base and separate complaint counts, which are different quantities.
  • An increase in MCAS authority from 0.6 to 2.5 degrees. This figure pair does not appear in the Joint Authorities Technical Review and is not sourced to it here.
  • Equifax at 147 million records, and a 19-month certificate expiry. The audited GAO figures are 145.5 million and about 10 months respectively.
  • Healthcare.gov end-to-end testing. The phrase does not appear in GAO-14-694. What GAO supports is that the readiness review was partial and that testing continued past it.
  • A day-one Healthcare.gov enrollment count. The widely cited number comes from congressional releases of internal notes, not from the GAO or Inspector General reports, so it is not attributed to them.
  • CrowdStrike device counts. The 8.5 million figure is Microsoft's estimate. CrowdStrike's own analysis contains no device count at all, so the number is attributed to Microsoft above.

The Pattern Across All of Them

Eight incidents, five debt types, four decades of technology. The common threads are narrower than you would expect.

Nobody Knew the State of the System

Knight Capital did not know one server still held old code. Equifax did not know the dispute portal was unpatched, or that a certificate had lapsed ten months earlier. Organizations responding to Log4Shell could not determine where the library ran. In each case the defect was ordinary; the inability to see it was the debt. Detection capability is not overhead sitting alongside the system - it is part of the system.

The Date Was Fixed Before the Readiness

TSB set an end date and built a plan to fit it, then lowered performance targets when tests failed against them. CMS moved its readiness assessment from March to weeks before launch and went live without the required approvals. When a launch date cannot move, the only remaining flexible quantity is the evidence, and it is the evidence that gets adjusted.

Tests Existed and Proved Nothing

CrowdStrike had twelve automated test cases; every one of them used a wildcard in the field that mattered, so none could ever have caught the defect. Knight never retested Power Peg after changing it in 2005. TSB skipped its regression phase entirely. The presence of a test suite says nothing about whether the dangerous path is covered, and coverage percentages will not tell you either.

The Documentation Stopped Matching Reality

MCAS changed and its safety analyses did not. CrowdStrike's template declaration said twenty-one fields while its sensor supplied twenty. Equifax circulated a patch notice to a distribution list that no longer reached the right people. A description that has drifted from the system is worse than no description, because it is trusted.

There Was No Blast Radius Control

A content update reached every Falcon host at once. Flat network segmentation let intruders move from three databases to forty-eight more. A single missed server put a firm's entire order flow through dead code. Staged rollout, segmentation, and circuit breakers are not sophistication - they are the difference between an incident and a catastrophe.

Warnings Existed and Did Not Travel

TSB's board was found to have missed an opportunity to pause. CMS continued on a failing path despite signs of trouble. The Horizon defects were known to the supplier before they were admitted to the courts. In none of these cases was the problem that nobody knew. The problem was that knowing did not reach anyone able to stop the launch.

The uncomfortable conclusion. Not one of these failures required an exotic bug. A missed file copy, an off-by-one field count, an expired certificate, a skipped regression phase, a stale distribution list, a document that was not updated. Every organization here had competent engineers, and in most cases substantial budgets and formal governance. What they lacked was the specific, unglamorous capability to answer a simple question quickly: what is actually running, where, and does it match what we think we deployed? That capability is what debt paydown buys, and it is why the case for it is easier to make with real incidents than with modelled ones.

Related Resources

Frequently Asked Questions

The case studies are composite scenarios. The companies are fictional and the figures are illustrative, drawn from real-world patterns rather than measured at a named organization, and every one of those pages carries a disclosure banner saying so. This page is the opposite: every incident is a real event at a named organization on a specific date, and every figure resolves to a primary document such as a regulator's order, a national audit office report, a court judgment, a statutory public inquiry, or the vendor's own published root cause analysis. Composites are useful for walking through a playbook without confidentiality problems. Only documented incidents can settle an argument about whether something actually happened.

Because a chronological list teaches almost nothing. Grouping by cause makes the repetition visible, and the repetition is the actual finding. Knight Capital in 2012 and CrowdStrike in 2024 are twelve years and two entirely different industries apart, yet both are failures of the machinery that moves changes into production rather than failures of application logic. Equifax and Log4Shell are both answers to the same question: do you know where a given library is running right now? Once the incidents are sorted by debt type, they stop being a list of disasters and start being a diagnostic you can run against your own systems.

The December 2022 Southwest disruption is very widely described as a consequence of deferred crew-scheduling modernization, and it was researched for this page on exactly that basis. The primary document does not support the claim. The United States Department of Transportation consent order is a consumer-protection action about call-centre assistance, flight-status notifications and refunds, and it makes no finding blaming scheduling software or ageing technology. It goes further and states that the Department is not making a finding on whether Southwest engaged in unrealistic scheduling at all. The technology explanation may well be true, but it is commentary rather than regulatory finding, so it belongs in the section on what could not be sourced rather than alongside incidents where a primary document does establish the cause.

Not knowing the true state of the running system. Knight Capital did not know one of eight servers still held dead code. Equifax did not know a specific portal was unpatched, and did not know a certificate had expired ten months earlier and left traffic uninspected. Organizations responding to Log4Shell could not establish where the library was deployed. In each case the underlying defect was ordinary and the fix was cheap; what made the outcome severe was the inability to see the condition in time. That is why observability, asset inventory, and deployment verification are debt paydown rather than overhead. They are the mechanisms that convert an unknown state into a known one.

Not by itself, and the CrowdStrike analysis is the clearest illustration available. Twelve automated test cases existed and ran on every development and release build. All twelve used a wildcard matching criterion in the twenty-first field, which is precisely the field whose handling caused the crash, so no possible run of that suite could have exposed the defect. The tests were green and meaningless simultaneously. Knight Capital shows the same pattern from a different angle: code was changed in 2005 and never retested in the configuration that would eventually call it. The useful question is never whether tests exist or what the coverage percentage is, but whether anything in the suite exercises the dangerous path under realistic inputs.

Use them for the mechanism, not for the size of the loss. Nobody funds work because another company lost a large sum; the natural response is that the other company was careless. What travels is the specific chain of events, because it is recognisable. A manual deployment step with no second reviewer, dead code still callable, a content pipeline that reaches every host at once, a certificate with no expiry alerting, a regression phase dropped to protect a date. Ask which of those conditions exists in your own environment right now, and present the answer alongside the incident that shows where it leads. A named regulator's finding about a named company is far harder to wave away than a modelled projection, which is the entire reason this page exists.

Run These Patterns Against Your Own Systems

Every failure here began as a condition somebody could have listed on an ordinary Tuesday. The value is in checking which of them you are carrying right now.