# Збій Google Cloud через порожнє поле. Три години.

Published: 2026-09-19

Рядок політики з кількома порожніми полями викликав нульовий вказівник, і Google Cloud одночасно вийшов з ладу в кожному регіоні — потім Cloudflare впав разом з ним. 12 червня 2025 року, 17:49 UTC: Service Control, бінарний файл, що затверджує кожен запит до Google Cloud API, зчитує зміну політики квот з «ненавмисними порожніми полями», потрапляє в код, випущений двома тижнями раніше без перевірки на нуль і без прапорця функцій, і переходить у цикл збою в кожному регіоні — рядок був реплікований глобально протягом декількох секунд. Зовнішні API повертають 503 протягом трьох годин; us-central1 займає 2 години 40 хвилин, тому що завдання, що перезапускаються, атакують ту ж таблицю Spanner без рандомізованої експоненційної затримки. Через три хвилини після збою Google, Workers KV від Cloudflare — джерело істини якого знаходиться на «сторонньому хмарному провайдері» — втрачає 90% запитів, а Access, WARP, Workers AI, Pages, Stream і Turnstile виходять з ладу разом з ним на 2 години 28 хвилин. Сторінка статусу Google публікує своє перше оновлення на годину пізніше, тому що вона працює на Google Cloud.

Canonical: https://thedailydiff.dev/uk/video/2026-09-19-google-cloud-null-pointer/

## Що охоплює це відео

- Порожнє поле, нульовий вказівник, кожен регіон
- Хронологія: 29 травня → 17:45 → цикл збою → червона кнопка → 17:52 Cloudflare
- us-central1: ефект стада
- Механізм: перевірка на шляху запиту, глобальна реплікація, один постачальник
- git blame — розділ

## Розділи

- 0:00 Порожнє поле, нульовий вказівник, кожен регіон
- 0:32 Хронологія: 29 травня → 17:45 → цикл збою → червона кнопка → 17:52 Cloudflare
- 1:32 us-central1: ефект стада
- 1:43 Механізм: перевірка на шляху запиту, глобальна реплікація, один постачальник
- 2:00 git blame — розділ
- 2:20 Радіус ураження
- 2:33 Вердикт + лінія понеділка

## Перекладена стенограма

Перекладено з оригінальної англійської розповіді. Доступне аудіо та субтитри контролюються YouTube.

### Порожнє поле, нульовий вказівник, кожен регіон

0:00 Рядок політики з порожніми полями викликає нульовий вказівник, і Google Cloud виходить з ладу в кожному регіоні одночасно — і Cloudflare падає разом з ним, потім називає Google «стороннім провайдером». 12 червня 2025 року, 17:49 UTC. Звіт Google: Service Control, бінарний файл, що затверджує кожен запит API, у циклі збою протягом трьох годин. Cloudflare, того ж вечора: Workers KV, дев'яносто відсотків збоїв, дві години двадцять вісім.

0:23 Як це сталося, чому одне порожнє поле стало глобальним за секунди, і хто несе відповідальність. Це The Daily Diff, розбір інциденту. 29 травня. Service Control отримує нову перевірку квоти, яка розгортається регіон за регіоном за допомогою

### Хронологія: 29 травня → 17:45 → цикл збою → червона кнопка → 17:52 Cloudflare

0:35 червоної кнопки — але новий шлях коду ніколи не запускається під час розгортання; ніщо не викликає його ще. Без перевірки на нуль. Без прапорця функцій. 17:45. Зміна політики з порожніми полями потрапляє до таблиці Spanner. Квота є глобальною, тому рядок реплікується всюди протягом декількох секунд. Кожен бінарний файл Service Control зчитує його, потрапляє на нульовий вказівник, падає, перезапускається, знову зчитує його. Кожен виклик API: 503.

0:55 Google швидкий: сортування за дві хвилини, першопричина за десять. Червона кнопка вимикається за сорок, і невеликі регіони відновлюються першими. Сторінка статусу публікує своє перше оновлення через годину, тому що вона працює на Google Cloud. 17:52. Команда WARP Cloudflare бачить, що нові пристрої не можуть зареєструватися. Workers KV, сховище, яке Cloudflare використовує для конфігурації та ідентифікації, розташоване на сторонньому хмарному провайдері. Access не проходить жоден вхід — за задумом, він закривається.

1:20 Workers AI не проходить жоден висновок. 19:11, Гергелі Орош: одночасно вийшли з ладу два незалежні хмари, ніколи раніше не бачив такого. 19:32, служба підтримки Google повідомляє користувачеві, що відомих збоїв немає — спробуйте очистити файли cookie. Всі інші відновлюються до 19:48.

### us-central1: ефект стада

1:34 us-central1 цього не робить: завдання, що перезапускаються, атакують ту ж таблицю Spanner, без рандомізованої експоненційної затримки, тому Google вручну обмежує їх. Дві години сорок. Одне: перевірка політики знаходиться всередині шляху запиту; коли перевірка вмирає,

### Механізм: перевірка на шляху запиту, глобальна реплікація, один постачальник

1:46 API вмирає. Два: дані квот стають глобальними без проміжного розгортання; поганий рядок — це глобальний рядок. Три: Cloudflare знав. Workers KV був у процесі міграції на власний R2, до одного провайдера — розбір інциденту називає це прогалиною в покритті.

### git blame — розділ

2:00 git blame. Google, п'ятдесят п'ять відсотків: без перевірки на нуль, без прапорця функцій, без експоненційної затримки — їхній звіт говорить, що прапорець виявив би це на проміжному розгортанні. Глобальна реплікація, двадцять: один рядок, кожен регіон, секунди. Cloudflare, двадцять: половина лінійки продуктів на сховищі одного постачальника, і розбір інциденту, який ніколи не згадує Google. Сторінка статусу, п'ять, за те, що працює на тому, про що повідомляє. Радіус ураження: сімдесят продуктів Google Cloud, десять додатків Workspace,

### Радіус ураження

2:23 кожен регіон. Три години. У Cloudflare: Access, WARP, Workers AI, Pages, Stream — дві з половиною. Hacker News, чотирнадцять сотень балів; топ-коментар: сторінка статусу зелена.

### Вердикт + лінія понеділка

2:33 Вердикт, розбір інциденту: SHIP IT. Обидва розбори інцидентів з'являються протягом тридцяти годин, обидва звинувачують себе, і виправлення Google є конкретними: відкритий збій, прапорці вимкнені за замовчуванням, експоненційна затримка. Лінія понеділка: новий код за прапорцем, який вимкнений, і перевірка на нуль там, де надходять дані. Надішліть мені інцидент, про який вам досі не дозволяється говорити, у коментарях, або на the daily diff dot dev. І це diff на сьогодні.

2:53 Я Ніко з Axrisi. Зливайте відповідально.

## Джерела

- [Google Cloud Service Health, Incident Report (Jun 13, 2025) + Mini Incident Report (Jun 12)](https://status.cloud.google.com/incidents/ow5i3PPK96RduMcb1SsW) — status.cloud.google.com
- [Cloudflare, "Cloudflare service outage June 12, 2025" (Jun 12, 2025, 22:00 UTC)](https://blog.cloudflare.com/cloudflare-service-outage-june-12-2025/) — blog.cloudflare.com
- [Cloudflare Status, "Broad Cloudflare service outages" (18:19–21:31 UTC)](https://www.cloudflarestatus.com/incidents/25r9t0vz99rp) — www.cloudflarestatus.com
- [Gergely Orosz, 19:11 UTC, "Their infra is fully independent AFAIK"](https://x.com/GergelyOrosz/status/1933240698716729511) — x.com
- [@Google support, 19:32 UTC, "there aren't any known service disruptions"](https://x.com/Google/status/1933246051512644069) — x.com
- [Thomas Kurian (Google Cloud CEO), Jun 13 01:35 UTC](https://x.com/ThomasOrTK/status/1933337436970709493) — x.com
- [Hacker News, "GCP Outage" (1,468 points)](https://news.ycombinator.com/item?id=44260810) — news.ycombinator.com
- [Hacker News, "Cloudflare was down" (341 points)](https://news.ycombinator.com/item?id=44261064) — news.ycombinator.com
- [Hacker News, "Google Cloud Incident Report – 2025-06-13" (209 points)](https://news.ycombinator.com/item?id=44274563) — news.ycombinator.com
