Failure pattern · 9 documented incidents
Destructive operation without verified recovery
A delete, cleanup or teardown runs against the wrong target, and the backups that should save the day turn out not to work.
See it happen
Watch how this failure unfolds, then switch to the same situation with the safeguard in place. Click any step to replay it.
Scroll the diagram sideways to see every system.
The backups were never tested, and they are empty.
What goes wrong:
- A cleanup job is supposed to delete the old staging database.
- A wrong variable points it at production instead.
- The team reaches for the backups.
- The backups were never tested, and they are empty.
With the safeguard:
- A cleanup job is supposed to delete the old staging database.
- Production has deletion protection, and the target must be confirmed by name.
- Backups are restored automatically every week to prove they work.
- Even a real mistake is recoverable in minutes.
What it is
A delete, cleanup or teardown runs against the wrong thing: production instead of staging, every site instead of one. Then the backups that were supposed to make it survivable turn out to be missing, empty or impossible to restore.
How it happens
- A script or command takes its target from a variable, a list or user input
- Nothing double-checks a destructive action against a protected set
- Backups exist on paper but haven’t been restored in a long time
What it causes
- Customer data or whole environments deleted
- Days of downtime while systems are rebuilt by hand
- Permanent data loss when restores fail
Warning signs
- Destructive commands that run without a dry run or confirmation
- Backup jobs that “succeed” but produce tiny files
- No one can say when a restore was last tested
How to prevent it
Make deletion reversible and prove recovery works. Use soft-delete with a grace period, confirm the exact target before destructive commands, and regularly restore from backups to prove they work within your recovery-time target.
- Production resources have deletion protection that a script can’t switch off
- Destructive commands show what they will touch and need the target confirmed by name
- Backups are restored on a schedule to prove they work, and kept somewhere a single admin can’t delete
Key ideas:Restore testing
Check your system against the full launch checklistReal incidents with this pattern
Documented incidents first. Each links to its public source.
AI coding agent deletes a live production database during a code freeze (Replit, 2025)
An AI coding agent deleted a live production database that held data on more than 1,200 executives and over 1,190 companies.
Safeguard: Separate development and production and enforce freezes in code
Ransomware shuts down CDK Global's dealer-management platform for about 15,000 dealerships (2024)
Ransomware forced shutdown of core dealer management SaaS platform, halting sales, financing, and parts ordering for 15,000 auto dealerships.
Safeguard: Contain before restoring
Blank provisioning parameter leads to automatic deletion of a customer's private cloud (UniSuper / Google Cloud, 2024)
An input parameter was left blank in an internal provisioning tool, so the system assigned an unknown default fixed one-year term to the customer's VMware Private Cloud.
Safeguard: Never let a blank input silently choose a default lifetime
Stolen credentials on a remote-access portal lead to the Change Healthcare ransomware outage (2024)
Single-factor remote access portal breached with stolen credentials; ransomware forced nationwide claims gateway disconnection.
Safeguard: Require MFA on all remote-access portals
Cyberattack disrupts Johnson Controls' internal IT infrastructure (2023)
Ransomware encrypted virtual hypervisors; halted manufacturing and billing operations incurring $27M in direct remediation costs.
Safeguard: Segment and protect hypervisor infrastructure
Cyberattack takes Clorox IT systems offline and forces manual order processing (2023)
Ransomware encrypted internal ordering databases; lack of decoupled offline queue forced multi-week manual processing and inventory write-downs.
Safeguard: Keep a tested manual or offline fallback for ordering
Deletion script given site IDs instead of app IDs removes 775 customers' sites (Atlassian, 2022)
A script meant to retire a deprecated app was given IDs for entire customer sites and did not check whether an ID referred to the app or the whole site.
Safeguard: Validate the scope of every ID in destructive scripts
Engineer deletes the production database directory and every backup method fails (GitLab, 2017)
While working on replication, an engineer ran a data-directory deletion on the production database server instead of the secondary, removing about 300 GB before stopping it.
Safeguard: Verify backups by restoring them
Major entertainment company hit by an SMB worm with destructive wiper components (2014)
US-CERT alert TA14-353A describes an SMB worm tool used against a major entertainment company that spreads by brute-forcing Windows SMB shares.
Safeguard: Segment and restrict credential spread
7 security advisories and illustrative scenarios with this pattern
iLearningEngines, Inc. discloses a cybersecurity incident (SEC 8-K, November 2024)
iLearningEngines, Inc. (the “ Company ”) recently became aware of a cybersecurity incident.
HTTP Server and Oracle Weblogic Server Proxy Plug-in issue could allow unauthorized access
Oracle HTTP Server and Oracle Weblogic Server Proxy Plug-in contain an improper access control vulnerability that can result in unauthorized creation, deletion or modification access to critical data as well as…
Security issue reported in Enterprise
Splunk Enterprise contains a missing authentication for critical function vulnerability which could allow an unauthenticated user to create or truncate arbitrary files through a PostgreSQL sidecar service endpoint.
Kubernetes Ingress Controller Memory Leak on Dynamic SSL Reload
Frequent Let's Encrypt cert renewals triggered daily NGINX reloads, fragmenting heap until pods OOM-killed.
DNSSEC Key Rollback & Global Domain Invalidation
Mismatched DS records during planned Key Signing Key (KSK) rollover caused recursive resolvers worldwide to return SERVFAIL.
BGP Prefix Hijack Inadvertent Cryptocurrency Wallet Redirection
Rogue BGP route announcement redirected DNS queries for major cryptocurrency portal to malicious server for 2 hours.
Database Auto-Vacuum Starvation Transaction ID Wraparound
Aggressive long-running analytics queries blocked auto-vacuum; reached 2-billion transaction ID limit forcing emergency shutdown.
In the standards
CollectSEA's mapping; not an official determination by the standards bodies.