Incident Library
Applied filters Root causeFaulty deploymentComponentNetwork control plane (SDN)SymptomNetwork unreachableClear 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

Cases3 cases

1 to 3 of 3

  1. Symptoms

    On 23 September 2026, private networking (6PN) stopped working for a subset of Fly.io machines. Fly.io mitigated it in about 10 minutes, and the problem came back briefly the following day.

    Trigger

    Fly.io changed its 6PN routing so that edges act as gateways for non-static peers. Every edge was then treated as a gateway and got a /80 route for its prefix in the Linux routing table, which overrode the per-machine routing for machines that had kept a reused host ID.

    Root cause
    Component
    Contributing factor
    Remediation
    • Deleted the bad /80 routes from the routing table on all affected hosts
    • Rolled back the changes to s6pnforwarderd, the daemon that manages 6PN routes
    • Shipped a fix that adds interactive peers only as /128 routes, which did not prevent a brief recurrence the next day
    • Changed routing to always look first for machines that carry a host's ID, whatever kind of host it is
    Action items
    • Give the machines used to test and alert on 6PN non-local 6PN addresses
    • Make host IDs in 6PN addresses carry no weight in routing decisions, for gateway peers as well as machines
    • Move new peers and machines across the board to a better model than the current hack kept for existing gateway peers
    Lessons

    Not everyone at Fly.io knew that a worker's host ID could be reused by a host that is not a worker, because host ID assignment was not well documented, and the gateways had not been touched for a long time, so the problem stayed hidden until edges became gateways. All existing 6PN checks used machines on their original host, so they could not catch any problem with host ID reuse or stable 6PN addresses; host IDs need to stop influencing 6PN routing in general for this kind of incident not to recur.

  2. Symptoms

    At about 16:38 UTC on 17 March 2025, internal alerts fired across multiple Linode data centers because various servers had been unreachable for an extended period. At the same time customers began reporting problems with several products.

    Trigger

    A release of Akamai Compute's internal backend API component was rolling out, and during the rollout the API gave inconsistent responses to the route servers.

    Root cause
    Component
    Contributing factor
    Detection

    Internal alerts fired across multiple data centers showing servers unreachable for an extended period, and customers reported problems with multiple products at the same time.

    Remediation
    • Restarted the route servers in all data centers in phases, starting with the most affected regions
    Action items
    • Hold backend API releases until there is a better way to make sure route data for route servers is contiguous
  3. Symptoms

    On 5 October 2023 in us-central1, newly created VMs waited a long time before their networking worked, and VMs that had been live migrated lost connectivity for a long time after the migration. Networking telemetry showed cross-region packet loss to and from us-central1 from 03:08 US/Pacific. Health check state of VMs reached load balancers late.

    Trigger

    A management plane behaviour change, meant to decouple the processing of API updates to Instance Groups and Network Endpoint Groups used as load balancer backends, was deployed in us-central1 after rolling out to several other regions without incident.

    Root cause
    Component
    Contributing factor
    Detection

    Engineers were alerted to slowness in the virtual network control plane in us-central1 at 21:45 US/Pacific on 4 October, before the packet loss started, and to controller failures from memory exhaustion at 02:11 on 5 October. Networking telemetry showed cross-region packet loss from 03:08.

    Remediation
    • Increased the memory allocated to the virtual network router controllers
    • Rolled back the management plane change in us-central1
    • Restarted by hand the routers that were still not accepting updates
    Action items
    • Alert proactively on memory risks and unexpected memory increases
    • Refactor the deployment configuration so engineers can reallocate memory much faster
    • Re-evaluate existing practices and add safety mechanisms for API reconciliation
    • Make management plane changes more visible across teams so the changes can be correlated faster
    • Adjust the deployment footprint so a regional API change is less likely to exhaust memory across the region at once
    • Optimise memory use in the traffic routers and their controllers
Check your cluster for this

These 3 cases involve Network control plane (SDN) and BGP routing. 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 cause1