Cases3 cases
1 to 3 of 3
IL-0283Cloudflare's core proxy returned HTTP 5xx across its network after loading an oversized Bot Management feature fileCloudflare2025- Symptoms
From about 11:20 UTC on 18 November 2025, Cloudflare's network started failing to deliver core traffic, and Internet users visiting Cloudflare customers' sites got an error page that pointed to a failure inside Cloudflare's network. The volume of HTTP 5xx responses served by the network jumped far above its normal low baseline.
- Trigger
At 11:05 UTC Cloudflare deployed a ClickHouse access control change that made users' existing implicit access to the underlying tables in the r0 database explicit, so the metadata of those tables became visible in system tables such as system.columns. The change was being rolled out gradually across the cluster.
- Root cause
- Component
- Contributing factor
- Detection
The first automated test detected the issue at 11:31 UTC, three minutes after the first errors on customer HTTP traffic at 11:28. Manual investigation started at 11:32 and the incident call was created at 11:35.
- Remediation
- Bypassed the core proxy for Workers KV and Access so they fell back to a prior proxy version, which reduced their impact
- Stopped the automatic creation and deployment of new Bot Management feature files
- Inserted a known good feature file into the distribution queue and deployed it globally
- Forced a restart of the core proxy
- Scaled control plane concurrency to clear the backlog of dashboard logins
- Restarted the remaining services that had entered a bad state
- Action items
- Harden the ingestion of Cloudflare-generated configuration files the same way as user-generated input
- Enable more global kill switches for features
- Stop core dumps and other error reports from being able to overwhelm system resources
- Review the failure modes for error conditions across all core proxy modules
IL-0284Workers KV failed 90.22% of requests in a third-party storage outage, breaking Access, WARP and many Cloudflare productsCloudflare2025- Symptoms
At 17:52 UTC on 12 June 2025, Cloudflare's WARP team saw registrations of new devices failing and declared an incident. Minutes later the Cloudflare Access team got an alert on a rapid rise in error rates, and Service Level Objectives for several other services fell below target. All of them shared one cause: Workers KV was unavailable.
- Trigger
Part of the storage infrastructure behind Workers KV is backed by a third-party cloud provider, and that provider had an outage. Workers KV could then no longer serve cold reads or writes from its central data store.
- Root cause
- Component
- Contributing factor
- Detection
The WARP team saw registrations of new devices failing at 17:52 UTC and declared an incident. At 18:05 the Access team received an alert on a rapid increase in error rates and Service Level Objective alerts fired across several teams; at 18:06 the incidents were combined once Workers KV unavailability was identified as the shared cause.
- Remediation
- Activated the Challenges and Turnstile kill switches so visitors were not blocked
- Degraded Gateway rules that referenced identity or device posture state to remove the Workers KV dependency
- Force-dropped Access identity and device posture requests to shed load on Workers KV
- Worked on a Workers KV release against an alternative backing datastore in case the storage stayed down
- Restored Access and Device Posture calls to Workers KV once the third-party service was back
- Action items
- Avoid singular dependencies on storage infrastructure that Cloudflare does not own
- Improve the ability to recover critical services, including Access, Gateway and WARP
- Add redundancy to Workers KV's storage infrastructure and remove the dependency on any single provider
- Make each affected product resilient to the loss of any single point of failure, third-party dependencies included
- Build tooling to re-enable namespaces progressively during storage incidents, so services come back without overloading Cloudflare's own infrastructure
- Lessons
Cloudflare holds itself responsible for its choice of dependencies and how it architects around them, even when a vendor failure was the trigger. Building many products on Workers KV normally makes them more robust than separate storage services would, but here the cascading failure of Workers KV made the outage worse and widened its blast radius.
IL-0240Cloudflare API requests failed and the dashboard slowed for hours after the authentication database lost its replicasCloudflare2020- Symptoms
On 2 November 2020 the Cloudflare API and dashboard were degraded for six hours and 33 minutes. The success rate of API queries dropped at times to 75%, and the dashboard was up to 80 times slower than normal, while Cloudflare's edge network kept working.
- Trigger
At 14:43 UTC a network switch in a control plane data center partly failed: it kept LACP and BGP running but stopped forwarding some packets, and it recovered on its own six minutes later.
- Root cause
- Component
- Contributing factor
- Detection
At 14:43 UTC alerts fired because the misbehaving switch was unreachable to pings. Engineers then saw that the primary authentication database was overwhelmed.
- Remediation
- Shed load from the primary authentication database by slowing SSL certificate pushes to the edge, emails and other features
- Moved API traffic that could use read replicas to the secondary data center by hand
- Sent authentication calls fully back to the primary data center when the dashboard got worse
- Rebuilt the first database replica, which put itself back into service at 21:20 UTC and returned performance to normal
- Ramped the turned-down services back up so asynchronous processing could catch up
- Action items
- Remove the cluster management limitation that requires rebuilding all replicas after a primary is promoted
- Redesign the user sessions system so dashboard traffic can be steered between data centers
- Change the auto-remediation configuration so a database replica is not promoted so quickly
- Tune each system involved to be more resilient to failures of its dependencies
- Lessons
Every system in the chain had redundancy and none failed completely; each only degraded, which made the chain of events much harder to model and foresee. Automating replica promotion so that it could trigger on a minute's notice had been a point of pride, but for at least one database a fast promotion can do more harm than the failure it answers. Most general-purpose cluster managers use Raft or Paxos rather than Byzantine fault tolerant protocols, accepting a rare failure mode in exchange for a protocol that is simpler to implement correctly and debug.
These 3 cases involve Database and CDN and edge network. kubegap audits a Kubernetes cluster for gaps like these, read-only, from Claude Code or Codex; its checks cite public reports like the ones in this library.
By root cause3
Configuration change1 case
- Component
- Contributing factor
- Organisation
Cloud provider outage1 case
- Component
- Contributing factor
- Organisation
DNS or network fault1 case
- Component
- Contributing factor
- Organisation