Incident Library
Applied filters SymptomMonitoring outageClear allEvery case under the filters, with no sentence; newest first.
Suggested filters Search, and the values found in your words appear here.

Graph

  • Root cause
  • Component
  • Symptom
  • Contributing factor
  • Case

Cases19 cases

1 to 5 of 19

  1. Symptoms

    On 19 August 2026 the first equipment-level signs in Nebius's us-central1 region appeared around 09:40 UTC: the InfiniBand fabric degraded and GPU over-temperature alerts began to accumulate. Customer reports followed shortly after 10:00. At 10:15 on-call engineers were paged on critical component temperature alerts, and the incident was declared at 10:21.

    Trigger

    A storm-related event at the data center building took the building management system offline and shut down the chilled-water cooling loop.

    Root cause
    Component
    Contributing factor
    Detection

    No facility-level alert fired, because the storm also disabled the building management system that monitors the facility. Engineers acted on component over-temperature alerts that paged on-call at 10:15 UTC, after InfiniBand degradation, GPU over-temperature alerts and customer reports; the temperature rise from about 09:15 was visible on dashboards but had no alert.

    Remediation
    • had the facility operator switch cooling to manual bypass mode and opened rack rear doors to vent heat
    • re-energised tripped racks, control-plane racks first
    • restored the regional infrastructure control plane by manual intervention
    • restarted block-storage host components to clear stale disk attachment state
    • raised the VM recovery rate limits by hand for the region-scale recovery
    • started the affected Managed Kubernetes control-plane instances by hand
    • applied a controlled stop and start to control-plane instances whose data disk had been left unattached
    • identified and started 104 customer VMs that the incident had stopped
    Action items
    • Complete a joint resilience review with the facility operator covering redundancy of facility-management and monitoring systems, cooling that keeps running when those fail, electrical protection of cooling equipment and on-site response
    • Add facility-level environmental alerting on cooling plant state and room temperature trend that pages on-call independently of the building management system
    • Set up a documented emergency escalation path with the facility operator, with an on-call contact tree and guaranteed response times
    • Define an emergency heat-load reduction procedure with criteria, ownership and mechanics for shutting down or degrading workloads during a cooling loss
    • Establish a dependency-ordered region cold-start procedure with clear ownership for each service layer
    • Run regular region-scale recovery drills that cover VMs, storage attachments and Managed Kubernetes clusters
    • Fix the disk-attachment bug that extended the Managed Kubernetes outage and deploy the fix to all production regions
    • Improve the recovery policies Compute users can configure, and move all Managed Kubernetes control-plane nodes to the improved policy
    • Automate reconciliation of stale storage attachment state after abrupt host failures
    • Remove in-region dependencies from monitoring startup and recovery, and extend cross-region monitoring
    • Make regional health checks used for global traffic management reflect real service availability
    Lessons

    Facility monitoring that runs on the same system it watches goes silent in exactly the failure it should report, and with no alert on the room temperature trend there was no practical window to shed heat load in a controlled way. A cold start of a whole region exercised recovery paths built for isolated failures: single-attempt VM recovery, conservative rate limits and stale disk attachments all needed manual work. The longest part of the outage was restoring customer resources, Managed Kubernetes control planes above all, so Nebius is extending its recovery drills to that layer.

  2. Symptoms

    Every service in the homelab Kubernetes cluster stopped answering: the V-Rising server, Grafana, Jellyfin and Linkding were all unreachable, and the Kubernetes API was down, so the cluster could not be managed at all. The outage was found by hand, about 3 hours after it began, when someone tried to use the services.

    Trigger

    A power outage forced the Kubernetes master node to reboot.

    Root cause
    Component
    Contributing factor
    Detection

    Manually, when someone tried to access the services; there were no automated alerts.

    Remediation
    • Connected a monitor to the master node and read the boot logs, which showed the kernel panic
    • Booted the previous kernel version, which brought the system back
    • Removed the broken Nvidia packages with sudo apt-get remove --purge '^nvidia-.*' and ran sudo dpkg --configure -a
    • Found remaining broken packages with dpkg -l | grep -v ^ii and removed them by hand
    • Ran sudo apt-get install -f and reinstalled linux-headers-$(uname -r)
    • Rebooted and confirmed the kernel panic was gone
    Action items
    • Make sure GPU driver installations fully succeed, or revert immediately when they fail
    • Move the cluster to a high-availability control plane
    • Expose the Kubernetes API through a load balancer in the HA setup
    • Set up a ticketing system to record incidents and their resolution
    • Write predefined troubleshooting workflows to shorten response time
    • Add infrastructure monitoring such as Prometheus and Grafana
    • Add blackbox HTTP and TCP checks from outside the cluster for critical services
    Lessons

    A driver installation that fails half-way can leave kernel packages broken without any visible effect until the next reboot, which may come weeks later and at the worst time. A failed DKMS build should be fixed or reverted at once. With a single master node and no monitoring from outside the cluster, one unbootable machine meant a total outage that nobody was told about; the fix itself was simple once the boot logs were seen.

  3. Symptoms

    Kibana stopped showing new application logs at 13:45. At 14:27 a user told the Cloud Platform team in the #ask-cloud-platform channel that Kibana had received no logs since then.

    Trigger

    OpenSearch ran out of disk space and index writes were blocked.

    Root cause
    Component
    Contributing factor
    Detection

    A user reported in #ask-cloud-platform at 14:27 that Kibana had received no logs since 13:45. The report records 12:10, when the ClusterIndexWritesBlocked alert first fired, as the first detection.

    Remediation
    • restarted all fluent-bit containers (logs flowed for a few minutes, then the error came back)
    • increased OpenSearch disk space from 8000 to 12000
    • configured fluent-bit to stop sending logs to OpenSearch while the root cause was investigated
    Action items
    • Look into index dating issues in OpenSearch and Elasticsearch
    • Add high-priority alerts for Elasticsearch and OpenSearch
    • Re-introduce OpenSearch into live logging
    • Investigate the fluent-bit "failed to flush chunk" error
  4. Symptoms

    After an upgrade of the kube-prometheus-stack Helm chart, several pods stayed not ready. Among them was prometheus-prometheus-operator-prometheus-0, showing 3/4 Running and a recent termination.

    Trigger

    During the kube-prometheus-stack Helm chart upgrade, Prometheus had to replay its write-ahead log on startup, and the replay needed more memory than its limit allowed.

    Root cause
    Component
    Contributing factor
    Detection

    The team noticed pods not ready after the Helm chart upgrade and found the OOMKilled termination with kubectl describe pod.

    Remediation
    • ran promtool tsdb analyze inside the Prometheus pod to find high-cardinality metrics such as haproxy_server_http_responses_total
    Action items
    • Verify that the memory overhead during WAL replay stays within acceptable limits, for example 10 to 15%, and do not run Prometheus close to its memory limit
    • Optimise storage, scraping and remote write configuration and upgrade to newer Prometheus releases
    • Recover automatically from OOM crash loops, for example by deleting the WAL on OOM events
    • Enforce scrape limits so Prometheus stops scraping targets when memory use passes a threshold
    Lessons

    Size Prometheus for its restart, not only for steady state: WAL replay can need far more memory than normal running, and a Prometheus that already runs near its limit can be OOM-killed during the replay. Much of Prometheus memory use comes from cardinality, which promtool tsdb analyze can measure even when Prometheus itself is down.

  5. Symptoms

    At 12:32 Prometheus on the Cloud Platform was not available after a planned change, and the Prometheus pod had restarted several times. The platform lost its monitoring and had missing metrics for the period.

    Trigger

    A planned change restarted Prometheus at a time when the WAL count was high.

    Root cause
    Component
    Contributing factor
    Detection

    The team saw that the Prometheus pod had restarted several times after the planned change.

    Remediation
    • raised the Prometheus startupProbe threshold to 30 minutes
    Action items
    • Perform planned Prometheus restarts when the WAL count is lower
    • Set the default CPU and memory requests to meet maximum usage
    • Create a test setup that recreates the live WAL count
    • Explore the memory-snapshot-on-shutdown and auto-gomaxprocs feature flags
    • Explore storing WAL files remotely in a different location
    • Look into a blue-green Prometheus to test changes on a live-like setup before applying them to live
    • Spike into Amazon Managed Prometheus
Check your cluster for this

These 19 cases involve Prometheus and Container memory limit. 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 cause7

Dependency failure1 case

Organisation
  1. IL-0133 A storm shut down cooling at Nebius's us-central1 data center, and a disk hot-plug bug kept Managed Kubernetes control planes down for hours after power returned
    Nebius2026

Software defect2 cases

  1. IL-0138 A failed Nvidia driver build left broken kernel packages on the only Kubernetes master node, which hit a kernel panic on reboot after a power outage and took the homelab cluster down for six days
  2. IL-0041 fluent-bit silently stopped shipping application logs from one node to Elasticsearch

Capacity exhaustion10 cases

  1. IL-0042 Application logs stopped reaching Elasticsearch and OpenSearch for hours and were lost when OpenSearch ran out of disk space
  2. IL-0044 Prometheus OOMKilled in a loop while replaying its write-ahead log after a kube-prometheus-stack upgrade
  3. IL-0046 Prometheus restarted again and again because its WAL replay took longer than the startup probe allowed
  4. IL-0110 A Grafana Agent pod's high memory use and crash-looping Hangfire pods drove a Kubernetes node into system OOM and NotReady, twice in one day
    DFDS2024
  5. IL-0169 The Scaleway Kubernetes API in FR-PAR ran out of memory under simultaneous deployments, and because it also handled node authentication, Kapsule and Kosmos nodes went NotReady
  6. IL-0043 Application logs missing in Kibana after a newer Fluent Bit version changed its chunk drop strategy
  7. IL-0016 Prometheus on the live cluster ran out of memory and was OOMKilled, and the monitoring node it ran on went NotReady
  8. IL-0176 Prometheus in a 235-node Kubernetes cluster crash-looped because over two million series exhausted host memory and the kernel OOM killer chose it first, as Burstable QoS gave it oom_score_adj 999
    LINE2020
  9. IL-0076 Kubernetes masters went down after Dex filled etcd with AuthRequest objects and deleting its namespace started an endless list-and-timeout loop
  10. IL-0001 Cluster-wide DNS outage after CoreDNS pods were OOM-killed again and again under a burst of DNS queries

unknown1 case

Component
Contributing factor
–
  1. IL-0045 Prometheus on the live cluster restarted several times after readiness probe failures, leaving gaps in metrics

Breaking change in an upgrade2 cases

  1. IL-0060 Kubernetes 1.24 upgrade removed the master node label that Calico route reflectors selected on, dropping all pod routes and taking Reddit down for 314 minutes
    Reddit2023
  2. IL-0144 A systemd security update installed by unattended-upgrades lost the DNS configuration of Ubuntu 18.04 VMs, so AKS kubelets could not resolve registry names and pods failed with ImagePullBackOff

Configuration change2 cases

Organisation
  1. IL-0109 A retried node rollover on a DFDS EKS cluster set the Auto Scaling group back to 15 instances, and the default termination policy removed every healthy worker node, leaving the cluster with no nodes
    DFDS2023
  2. IL-0035 Worker nodes went NotReady after a new ElastAlert rule without memory limits used up node memory
    NU.nl2019

Operator error1 case

  1. IL-0089 A test cluster deletion script run with the kube context pointing at the live-1 production cluster deleted its ingress controller, monitoring, logging, cert-manager, kiam and external-dns