Quick Answer
On 20 October 2026 Google Cloud's London region, europe-west2, was disrupted for 6 hours and 10 minutes. Google's preliminary report says a power grid problem hit the data centre for one zone, europe-west2-b, the backup generators failed to start, and when the batteries ran out the zone went offline. Apps that ran only in that zone were unreachable, and apps in the other two zones still saw errors and delays. The lesson for small teams: spread across zones, keep spare capacity running, and monitor from outside your cloud.
What Happened
Everything in this section comes from Google's preliminary incident report. Times are London time (BST).
| Time (20 Oct, BST) | What happened |
|---|---|
| 06:53 | Power disruption at the data centre for europe-west2-b. A fault in the generator control systems stops the backup generators from taking the load |
| 07:00 | The batteries run out. Servers, network hardware and storage in europe-west2-b go offline |
| 07:08 | Google's own monitoring alerts its engineers |
| 12:29 | Most Google Cloud services recover |
| 12:46 | New virtual machines can be created again |
| 13:10 | Over 99% of Compute Engine virtual machines are healthy |
| 15:03 | Google posts the closure notice |
The report lists 40 affected Google Cloud services, including Compute Engine, Cloud Run, Cloud SQL, Google Kubernetes Engine, Cloud Storage, BigQuery and Cloud Load Balancing. Google says a final report with preventive actions will follow.
Power cuts happen, which is why data centres have batteries and generators. Here the batteries worked, and the generators did not start. The report says both the primary and the backup controllers failed to start them.
Why the Other Two Zones Also Struggled
A cloud region is split into zones, which are separate data centre facilities. The idea is that if one zone fails, the others carry on. That mostly happened: Google says services with failover, such as Cloud SQL, AlloyDB, Memorystore for Redis and Cloud Bigtable, failed over into the zones that still had power.
But customers in europe-west2-a and europe-west2-c also had problems. Google's report gives two causes:
- A rush of demand. Everything that failed over from the dead zone landed on the remaining capacity at once and filled it. That caused queues, slower database failovers, and intermittent HTTP 500 and 503 errors across the region.
- Hidden links to the dead zone. Some control systems in the region still waited for answers from components in the offline zone, and timed out. Google lists BigQuery, Looker, Compute Engine, Google Kubernetes Engine, Regional Persistent Disk and Cloud SQL among the services hit this way.
The second cause is the uncomfortable one. Being "multi-zone" on paper did not fully protect those customers, because part of the system they relied on still depended on the zone that went dark.
How Google Brought It Back
The report describes the recovery in five steps, and each one is a useful pattern for a much smaller system:
- Isolate the dead zone. Engineers routed regional traffic away from europe-west2-b, so requests stopped timing out against machines that were offline.
- Protect what is still running. They changed scheduler allocations and capacity limits in the healthy zones to put existing customer reservations first and clear queues.
- Restore power properly. Facility engineers restored a stable utility feed within an hour of supply coming back, then reset and tested the generator controllers.
- Restart in stages. Core infrastructure and services were restarted step by step, not all at once.
- Let traffic back in slowly. Only after checking storage integrity and system health did they return traffic to the zone, gradually, so job backlogs could clear.
Google also notes that storage writes in the region saw a short burst of errors during the first failover. If your app writes to storage, retries with a back-off are what carry it through a moment like that.
It Has Happened Before
Backup power and cooling are built to be redundant, and Google's own incident pages show they still fail together now and then. Three earlier European incidents, each from Google's status site:
| When | Where | What failed | How long |
|---|---|---|---|
| 19 to 20 July 2022 | London, europe-west2-a | Several redundant cooling systems failed at once in extreme heat, and about 35% of the zone's virtual machines were lost | About 1 day, 14 hours, 47 minutes |
| 12 August 2024 | London, europe-west2 | A substation switchgear failure cut both the main and backup power feeds to a Google network site, causing timeouts and HTTP 500 errors for traffic into and out of the region | About 2 hours, 12 minutes |
| 15 to 16 July 2026 | Netherlands, europe-west4-a | A 3 ms voltage drop from the utility, a backup power system that failed to take the load, and a cooling failure, which hit VMware Engine, NetApp Volumes and Bare Metal Solution | 14 hours, 55 minutes |
The pattern is the same each time: a backup system failed along with the main one. So plan for losing a zone, and decide in advance what your app does when it happens.
What This Means for a Small Team
A small app does not have to survive a data centre failure, and that can be a fair trade. But choose it on purpose. These are the questions the report raises:
| Your set-up | What the report says happened to it | What to consider |
|---|---|---|
| Everything in one zone | Workloads entirely in europe-west2-b became unreachable | Run at least two copies in different zones |
| Spread across zones, sized tightly | Failover demand filled the remaining capacity | Keep spare capacity already running |
| Relies on creating new machines to recover | New VM creation only resumed at 12:46, near the end | Do not count on autoscaling during a regional incident |
| Database in one region, with zone failover | Databases with failover moved to healthy zones, some with delays | Also keep backups in a different region |
How to Fix It: Health Checks and Outside Monitoring
Failover only works if something can tell your app is unhealthy. Load balancers, container platforms and uptime monitors can be set to ask a health endpoint. One that always says "ok" keeps traffic flowing to a copy of your app that cannot reach its database.
// BAD: says "ok" even when the database is unreachable
app.get('/health', (req, res) => res.send('ok'));
// GOOD: answers 503 when a real dependency fails, and never hangs
async function withTimeout(promise, ms) {
let timer;
const timeout = new Promise((_, reject) => {
timer = setTimeout(() => reject(new Error('timeout')), ms);
});
try {
return await Promise.race([promise, timeout]);
} finally {
clearTimeout(timer);
}
}
app.get('/health', async (req, res) => {
try {
await withTimeout(db.query('SELECT 1'), 2000);
res.json({ status: 'ok' });
} catch {
res.status(503).json({ status: 'degraded' });
}
});
The timeout matters. During this incident Google saw API timeouts across the region, and a health check that waits forever tells nobody anything. Our health endpoint guide covers liveness and readiness checks and Docker Compose health checks.
Second, watch your app from outside the cloud it runs in. Google's alerts fired 8 minutes after the zone went offline, but those were alerts to Google's engineers. Your customers only see what you tell them, and you only know what your own monitoring tells you. Our production monitoring checklist lists what to watch.
VibeDoctor's Vibe Check (vibedoctor.io) flags apps that have no health endpoint such as /health, and Vibe Monitoring checks your live URL every few minutes, recording whether it is up, how fast it answers and when it went down. Free to sign up.
Third, write down your plan before you need it: which region you would move to, where your backups are, and how you will tell users. A status page or even a pinned post is enough for a small team.
FAQ
What caused the Google Cloud London outage on 20 October 2026?
Google's preliminary report says a power grid disruption hit the data centre for zone europe-west2-b. The backup generators did not start because of a fault in their control systems, and when the batteries ran out the zone's servers, network and storage went offline.
How long did it last?
Google puts it at 6 hours and 10 minutes, from 07:00 to 13:10 BST on 20 October. Most services recovered by 12:29, and Google posted the closure notice at 15:03.
Was my app safe if it ran in more than one zone?
Safer, not fully safe. Google says customers in the other two zones also saw problems, because failover demand filled the remaining capacity and some control systems waited on the offline zone. Services with failover, such as Cloud SQL and AlloyDB, moved to healthy zones.
Should a solo founder run in two regions?
It depends on what an hour of downtime costs you. Two zones with spare capacity covers a zone failure like this one. Backups in a second region protect your data even if you never fail over. A full second region costs more and adds complexity, so choose it when downtime costs more than running it.
Has Google published the final report?
Not yet. The preliminary report says a final incident report with preventive actions will be posted once the investigation is complete.