# Google Cloud est tombé en panne à cause d'un champ vide. Trois heures.

Published: 2026-09-19

Une ligne de politique avec quelques champs vides atteint un pointeur nul, et Google Cloud tombe en panne dans toutes les régions à la fois — puis Cloudflare tombe avec elle. 12 juin 2025, 17:49 UTC : Service Control, le binaire qui approuve chaque requête API de Google Cloud, lit un changement de politique de quota avec des "champs vides non intentionnels", atteint un chemin de code livré deux semaines plus tôt sans vérification de nullité et sans indicateur de fonctionnalité, et entre dans une boucle de plantage dans toutes les régions — la ligne s'était répliquée mondialement en quelques secondes. Les API externes renvoient 503 pendant trois heures ; us-central1 prend 2 h 40 min parce que les tâches redémarrées envahissent la même table Spanner sans temporisation aléatoire. Trois minutes après la panne de Google, Workers KV de Cloudflare — dont la source de vérité se trouve sur "un fournisseur de cloud tiers" — perd 90 % des requêtes, et Access, WARP, Workers AI, Pages, Stream et Turnstile tombent en panne avec elle pendant 2 h 28 min. La page d'état de Google publie sa première mise à jour avec une heure de retard, car elle fonctionne sur Google Cloud.

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

## Ce que cette vidéo couvre

- Un champ vide, un pointeur nul, chaque région
- Chronologie : 29 mai → 17:45 → boucle de plantage → bouton rouge → 17:52 Cloudflare
- us-central1 : l'effet de groupe
- Mécanisme : vérification dans le chemin de requête, réplication globale, un fournisseur
- git blame — la scission

## Chapitres

- 0:00 Un champ vide, un pointeur nul, chaque région
- 0:32 Chronologie : 29 mai → 17:45 → boucle de plantage → bouton rouge → 17:52 Cloudflare
- 1:32 us-central1 : l'effet de groupe
- 1:43 Mécanisme : vérification dans le chemin de requête, réplication globale, un fournisseur
- 2:00 git blame — la scission
- 2:20 Rayon d'impact
- 2:33 Verdict + la ligne du lundi

## Transcription traduite

Traduit de la narration originale en anglais. L'audio et les sous-titres disponibles sont contrôlés par YouTube.

### Un champ vide, un pointeur nul, chaque région

0:00 Une ligne de politique avec des champs vides atteint un pointeur nul, et Google Cloud tombe en panne dans chaque région à la fois — et Cloudflare tombe avec elle, puis appelle Google "un fournisseur tiers". 12 juin 2025, 17:49 UTC. Le rapport de Google : Service Control, le binaire qui approuve chaque requête API, en boucle de plantage pendant trois heures. Celui de Cloudflare, le même soir : Workers KV, quatre-vingt-dix pour cent en échec, deux heures vingt-huit.

0:23 Comment cela s'est passé, pourquoi un champ vide est devenu global en quelques secondes, et qui est en faute. Ceci est The Daily Diff, post-mortem. 29 mai. Service Control reçoit une nouvelle vérification de quota, déployée région par région avec un

### Chronologie : 29 mai → 17:45 → boucle de plantage → bouton rouge → 17:52 Cloudflare

0:35 bouton rouge — mais le nouveau chemin de code ne s'exécute jamais pendant le déploiement ; rien ne le déclenche encore. Pas de vérification de nullité. Pas d'indicateur de fonctionnalité. 17:45. Un changement de politique avec des champs vides arrive dans la table Spanner. Le quota est global, donc la ligne se réplique partout en quelques secondes. Chaque binaire Service Control le lit, atteint le pointeur nul, plante, redémarre, le relit. Chaque appel API : 503.

0:55 Google est rapide : triage en deux minutes, cause racine en dix. Le bouton rouge est sorti en quarante, et les petites régions se rétablissent en premier. La page d'état publie sa première mise à jour après une heure, parce qu'elle fonctionne sur Google Cloud. 17:52. L'équipe WARP de Cloudflare voit de nouveaux appareils échouer à s'enregistrer. Workers KV, le magasin que la moitié de Cloudflare utilise pour la configuration et l'identité, réside sur un cloud tiers. Access échoue à chaque connexion — par conception, il échoue fermé.

1:20 Workers AI échoue à chaque inférence. 19:11, Gergely Orosz : deux clouds indépendants en panne simultanément, jamais vu auparavant. 19:32, le support de Google dit à un utilisateur qu'il n'y a pas de perturbations connues — essayez de vider vos cookies. Partout ailleurs se rétablit avant 19:48.

### us-central1 : l'effet de groupe

1:34 us-central1 non : les tâches redémarrées envahissent la même table Spanner, pas de temporisation aléatoire, donc Google les limite manuellement. Deux heures quarante. Un : la vérification de politique se trouve dans le chemin de requête ; lorsque la vérification échoue,

### Mécanisme : vérification dans le chemin de requête, réplication globale, un fournisseur

1:46 l'API échoue. Deux : les données de quota deviennent globales sans pré-production ; une mauvaise ligne est une ligne globale. Trois : Cloudflare savait. Workers KV était en pleine migration vers son propre R2, réduit à un seul fournisseur — le post-mortem l'appelle une lacune dans la couverture.

### git blame — la scission

2:00 git blame. Google, cinquante-cinq pour cent : pas de vérification de nullité, pas d'indicateur de fonctionnalité, pas de temporisation — leur rapport indique qu'un indicateur l'aurait détecté en pré-production. Réplication globale, vingt : une ligne, chaque région, secondes. Cloudflare, vingt : la moitié d'une ligne de produits sur le magasin d'un fournisseur, et un post-mortem qui ne mentionne jamais Google. La page d'état, cinq, pour vivre sur ce qu'elle rapporte. Rayon d'impact : soixante-dix produits Google Cloud, dix applications Workspace,

### Rayon d'impact

2:23 chaque région. Trois heures. Chez Cloudflare : Access, WARP, Workers AI, Pages, Stream — deux heures et demie. Hacker News, mille quatre cents points ; commentaire principal : la page d'état est verte.

### Verdict + la ligne du lundi

2:33 Verdict, post-mortem : SHIP IT. Les deux post-mortems arrivent en moins de trente heures, les deux se blâment, et les correctifs de Google sont concrets : échec ouvert, indicateurs désactivés par défaut, temporisation exponentielle. La ligne du lundi : nouveau code derrière un indicateur qui est désactivé, et une vérification de nullité là où les données arrivent. Envoyez-moi l'incident dont vous n'êtes toujours pas autorisé à parler, dans les commentaires, ou à the daily diff dot dev. Et c'est le diff pour aujourd'hui.

2:53 Je suis Niko d'Axrisi. Fusionnez de manière responsable.

## Sources

- [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
