Cases2 cases
1 to 2 of 2
IL-0471GitHub Actions runs failed or sat queued for 9 hours after a routine deployment's pod replacement saturated capacityGitHub2026- Symptoms
From 15:05 UTC on 6 August 2026 GitHub Actions workflow runs failed to start, failed partway through or stayed queued for a long time, on both GitHub-hosted and self-hosted runners. Some requests to the Actions REST API returned errors, and some customers saw unexpected rate limiting in their workflows.
- Trigger
A routine deployment to an internal Actions service that processes events and generates Actions jobs replaced pods, and the remaining capacity became saturated.
- Root cause
- Component
- Contributing factor
- Remediation
- Expanded capacity of the affected services
- Throttled incoming webhook-triggered work
- Increased processing capacity for the backlog of affected events
- Deployed changes that stopped runners from repeatedly trying to acquire invalid jobs
- Deployed a fix for self-hosted runners that were not picking up jobs and enabled it incrementally
- Paused migrations with GitHub Enterprise Importer
- Restored webhook-triggered Actions workflows to full throughput
- Rolled back the mitigation that left some ARC runners offline, and recovered those runners by hand
- Shared CLI and UI steps for customers to clear jobs that could not be retried or canceled
- Action items
- Improve deployment and capacity safeguards for the affected services
- Strengthen monitoring for the conditions that preceded the incident
- Improve the resiliency and recovery of queued work and runner assignment
- Add automatic recovery for self-hosted runners in upcoming Runner and ARC releases
- Reduce the risk of cascading failures and speed up recovery during large Actions disruptions
IL-0234An onboarding operator deployed without its scope file installed dev applications on other IONOS Kubernetes clustersIONOS Cloud2026- Symptoms
On 8 May 2026 IONOS Cloud reported "K8s Control Planes not available": some Managed Kubernetes customers in DE/TXL, DE/FRA and DE/FRA/2 had trouble connecting to the control plane and saw degraded Kubernetes functionality. Between 15:22 and 16:12 (UTC+2) applications meant for a new internal development cluster were installed on other customer clusters, which were also modified.
- Trigger
A routine internal operation onboarded a new Managed Kubernetes development cluster. The scoping configuration file for the onboarding operator failed to reach the deployment branch because of a merge conflict, and at the same time a second change removed the operator from the exclusion list, which deployed it at once.
- Root cause
- Component
- Contributing factor
- Remediation
- Corrected the onboarding operator so it needs an explicit namespace configuration before acting on any cluster
- Reconfigured the deployment system to fail deployments when required configuration files are missing
- Rolled back the identified changes on the affected resources
- Ran a recovery script, validated in staging, that removed all unintended installations and updates from the affected clusters
- Action items
- Add a mandatory CI/CD step that confirms all required configuration files reached the target branch before any deployment starts
- Require additional peer review and change management approval for every deployment that touches production, whatever its size
- Give teams a way to inform each affected customer in time about the status of post-incident cleanup
- Lessons
IONOS treats the unintended change to cluster configurations as a failure of the controls that should keep internal operations from affecting customer environments.
These 2 cases involve CI system and Container registry and its credentials. 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
Capacity exhaustion1 case
- Component
- Contributing factor
- Organisation
Faulty deployment1 case
- Contributing factor
- Organisation