Cases2 cases
1 to 2 of 2
IL-0378All Cloudflare R2 object writes and about 35% of reads failed when the R2 Gateway could not authenticate to storageCloudflare2025- Symptoms
From 21:38 UTC on 21 March 2025, Cloudflare R2 object storage returned errors for 1 hour and 7 minutes: all object writes failed and about 35% of object reads failed globally. R2 global availability alerts fired at 21:45 UTC, at a 2% error budget burn rate.
- Trigger
During a routine rotation of the credentials the R2 Gateway Worker uses to authenticate with the storage infrastructure, the new credentials were deployed to the Worker of the default environment instead of the production Worker, and the old credentials were then removed from the storage infrastructure at 20:37 UTC.
- Root cause
- Component
- Contributing factor
- Detection
R2 global availability alerts fired at 21:45 UTC, seven minutes after impact began, at a 2% error budget burn rate, and the R2 engineering team turned to operational dashboards and logs.
- Remediation
- Deployed the new credentials to the production R2 Gateway Worker, which restored R2 availability
- Action items
- Add logging tags with the suffix of the credential ID the R2 Gateway Worker uses
- Require confirmation that the new token ID suffix matches storage infrastructure logs before deleting the old token
- Run key rotation through the hotfix release tooling, which enforces the environment, instead of manual wrangler commands
- Write the two-person validation of these changes into the standard operating procedures
- Extend the closed loop health check system to test new keys, report their status through alerting and confirm global propagation before releasing the gateway Worker
- Add observability views of upstream success rates that bypass caching
- Lessons
Because the deletion of the old credentials took effect gradually, availability metrics were a poor way to confirm the change. Cloudflare said the team should have checked directly which token the R2 Gateway service was using to authenticate with the storage infrastructure instead of relying on those metrics.
IL-0343DNS names under digitaloceanspaces.com stopped resolving, breaking Spaces, Container Registry and the Control PanelDigitalOcean2024- Symptoms
From 22:38 UTC on 28 November 2024, DigitalOcean's Cloud Control Panel stopped loading for customers, and sign-up and log-in failed. DigitalOcean declared the incident from monitoring and customer reports, an internal alert fired at 22:44 UTC, and Spaces buckets and the services that depend on them began to fail intermittently.
- Trigger
At 22:38 UTC on 28 November 2024, DigitalOcean's domain registrar, Network Solutions, made an update to the digitaloceanspaces.com domain that added an Extensible Provisioning Protocol (EPP) clientHold status code to it.
- Root cause
- Component
- Contributing factor
- Detection
DigitalOcean declared the incident at 22:38 UTC based on monitoring and customer reports that the Cloud Control Panel would not load. An internal alert detected the issue at 22:44 UTC, and the first customer contact about the Control Panel came at 22:57 UTC.
- Remediation
- Deployed a change that brought the Cloud Control Panel back online
- Contacted Network Solutions to have the clientHold removed
- Escalated to Verisign executives, the .com registry, until the clientHold was removed
- Action items
- Work with Network Solutions to understand why the clientHold was applied to the domain
- Review other domain registrars as possible new homes for DigitalOcean's domains
- Review monitoring and alerting to detect registrar-imposed changes and DNS resolution problems sooner
These 2 cases involve Object storage and Domain registrar and registry. 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 cause2
Operator error1 case
- Component
- Contributing factor
- Organisation
Dependency failure1 case
- Contributing factor
- Organisation