IL-0338 Google Cloud · 2018-07-17gcpnetworking
Google Cloud HTTP(S) and TCP/SSL Proxy load balancers returned 502s or reset connections on 33% to 87% of requests
Google's Global Load Balancers are built on two tiers of Google Front Ends (GFE). The first tier answers requests as close to the user as possible and forwards them over Google's network to a second tier of GFEs placed close to the backend service. The GFE team was adding security and performance features to the second-tier GFE code; the features were in the code base but not yet in service, and one of them contained a bug that made the GFE restart. Neither testing nor the initial rollout had caught the bug.
At 12:17 PDT on 17 July 2018 a configuration change in production began to set off the bug intermittently, and the affected second-tier GFEs restarted again and again. Restarts take time, so second-tier capacity shrank: some requests were answered, others were cut off, which showed as connection resets, or refused for lack of capacity while GFEs came back. Engineers were alerted within 3 minutes, found the root cause at 12:44 and reverted the configuration change, after which the GFEs stopped restarting and traffic returned to normal by 12:55.
- Severity
- –
- Scope
- Google Cloud HTTP(S) Load Balancer, TCP/SSL Proxy Load Balancer and the services behind them, including App Engine serving, Cloud Functions, the Stackdriver web UI, Dialogflow, the Cloud Support Portal and API, GKE Ingress and Cloud Storage traffic through Cloud Load Balancers; Cloud CDN cache hits dropped 70%
- Users affected
- customers using Google Cloud App Engine, HTTP(S) Load Balancer or TCP/SSL Proxy Load Balancers
- Region
- –
- Time to detect
- 2m
- Time to resolve
- 38m
Symptoms
From 12:17 to 12:49 PDT on 17 July 2018, Google Cloud HTTP(S) Load Balancers answered a share of requests with 502 return codes, and connections to TCP/SSL Proxy Load Balancers were reset. The share of failed requests moved between 33% and 87% during those 32 minutes, and automated monitoring alerted Google engineers at 12:19.
Google services that serve through Cloud HTTP Load Balancing were affected for the whole period, including App Engine application serving, Cloud Functions, the Stackdriver web UI, Dialogflow and the Cloud Support Portal and API. Services on Google Kubernetes Engine that use the Ingress resource returned 502s, and Cloud Storage traffic served through Cloud Load Balancers was hit as well. Cloud CDN cache hits fell by 70%, because fewer Cloud CDN URLs were referenced by the services behind the load balancers and Cloud CDN could not validate stale entries or add new content on cache misses. Applications that used direct VM access or Network Load Balancing were not affected.
After the fix took effect at 12:49 the 502 rate fell back to normal quickly, but latency stayed degraded for several more minutes while traffic returned and caches warmed. Serving was fully recovered at 12:55.
Root cause
Root cause Software defect
- Trigger
- A configuration change in the production environment intermittently set off a bug in a new feature of the second-layer Google Front Ends.
Detection
Automated monitoring alerted Google's engineering team at 12:19 PDT, two minutes after the 502s began.
Remediation
- Reverted the configuration change at 12:44 PDT, which stopped the GFE restarts
Action items
- Add safeguards that disable features not yet in service
- Harden the GFE testing stack against latent bugs in production binaries that make a task restart
- Isolate the shards of GFE pools further from each other to reduce the scope of failures
- Build a consolidated dashboard of all configuration changes for GFE pools
Lessons
–
Sources
- https://status.cloud.google.com/incident/cloud-networking/18012 · official-status · archived copy
Related cases
IL-0226Azure Front Door edge servers crashed worldwide on incompatible configuration metadata, causing timeouts and DNS errorsMicrosoft Azure · 2025same root cause · shared CDN and edge network
IL-0150A latent race condition in DynamoDB's DNS automation left an empty DNS record for dynamodb.us-east-1.amazonaws.com, and the DynamoDB and EC2 launch failures that followed caused EKS, ECS and Fargate container launch failures and cluster scaling delays in us-east-1Amazon Web Services · 2025same root cause · shared Cloud load balancer
IL-0352Heroku Router 2.0 spread HTTP requests unevenly across dynos for four days, causing latency and timeoutsHeroku · 2025same root cause · shared Cloud load balancer
IL-0131A new kind of GenerateContent request made Vertex AI prediction API servers segfault, and once enough of them restarted at the same time the serving fleet could not carry the loadGoogle Cloud · 2024same root cause · shared Cloud load balancer
IL-0529New Google Cloud VMs and other instances came up without network connectivity in all zones after VPC controllers stoppedGoogle Cloud · 2024same root cause · shared Cloud load balancer
IL-0253Firefox froze and could not load any web content for close to two hours, stuck in an HTTP/3 request to TelemetryMozilla · 2022same root cause · shared Cloud load balancer
IL-0243Google's global External Proxy Load Balancing returned 404 errors for most HTTP/S endpoints for 33 minutesGoogle Cloud · 2021same root cause · shared Cloud load balancer
IL-0106A malformed Traefik IngressRoute triggered a Traefik v2 bug once a node rollover restarted every Traefik pod, and all Kubernetes services returned 404DFDS · 2021same root cause · shared Cloud load balancer
IL-0493Netlify's Google Cloud TCP load balancer stopped serving about 5% of global traffic as all backends failed health checksNetlify · 2021same root cause · shared Cloud load balancer
IL-0345Many Render services in the Oregon region returned 503 errors for about four hoursRender · 2020same root cause · shared Cloud load balancer
IL-0030Most nodes of a cluster went NotReady together for 15 minutes while the API server sat behind an AWS ELBZalando · 2019same root cause · shared Cloud load balancer
IL-0388A Google Cloud live migration took a Discord Redis primary offline, and the failover broke API instances and then guildsDiscord · 2017same root cause · shared CDN and edge network
IL-0395Google Cloud HTTP(S) Load Balancer gave 502s on 25% of requests for 22 minutes after reverting to a stale configurationGoogle Cloud · 2017same root cause · shared Cloud load balancer
IL-0396New or live-migrated GCE instances, VPN tunnels and network load balancers were unreachable on public IPs for over 2hGoogle Cloud · 2017same root cause · shared Cloud load balancer
Check your cluster for this
For AI tools and scripts
- This case as JSON: https://incidentlib-api.benchlet.com/cases/IL-0338
- The cases most like it: https://incidentlib-api.benchlet.com/cases/IL-0338/similar
- MCP server (Streamable HTTP, no key):
https://incidentlib-mcp.benchlet.com/mcp
The API needs no key. The MCP server offers search_incidents, get_incident, list_incidents, get_topic and vocab; both are explained on API and MCP.