# Google Cloud falló por un campo en blanco. Tres horas.

Published: 2026-09-19

Una fila de políticas con algunos campos en blanco provoca un puntero nulo, y Google Cloud se bloquea en todas las regiones a la vez — luego Cloudflare también cae. 12 de junio de 2025, 17:49 UTC: Service Control, el binario que aprueba cada solicitud de API de Google Cloud, lee un cambio de política de cuota con "campos en blanco no intencionados", encuentra una ruta de código implementada dos semanas antes sin comprobación de nulos y sin "feature flag", y entra en un bucle de bloqueo en todas las regiones — la fila se había replicado globalmente en segundos. Las API externas devuelven 503 durante tres horas; us-central1 tarda 2 h 40 min porque las tareas de reinicio abruman la misma tabla de Spanner sin un retroceso aleatorio. Tres minutos después de la interrupción de Google, Workers KV de Cloudflare — cuya fuente de verdad reside en "un proveedor de la nube de terceros" — pierde el 90 % de las solicitudes, y Access, WARP, Workers AI, Pages, Stream y Turnstile caen con él durante 2 h 28 min. La página de estado de Google publica su primera actualización una hora tarde, porque se ejecuta en Google Cloud.

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

## Qué cubre este vídeo

- Un campo en blanco, un puntero nulo, todas las regiones
- Cronología: 29 de mayo → 17:45 → bucle de bloqueo → botón rojo → 17:52 Cloudflare
- us-central1: el efecto rebaño
- Mecanismo: comprobación en la ruta de solicitud, replicación global, un proveedor
- git blame — la división

## Capítulos

- 0:00 Un campo en blanco, un puntero nulo, todas las regiones
- 0:32 Cronología: 29 de mayo → 17:45 → bucle de bloqueo → botón rojo → 17:52 Cloudflare
- 1:32 us-central1: el efecto rebaño
- 1:43 Mecanismo: comprobación en la ruta de solicitud, replicación global, un proveedor
- 2:00 git blame — la división
- 2:20 Radio de impacto
- 2:33 Veredicto + la línea del lunes

## Transcripción traducida

Traducido de la narración original en inglés. El audio y los subtítulos disponibles están controlados por YouTube.

### Un campo en blanco, un puntero nulo, todas las regiones

0:00 Una fila de política con campos en blanco causa un puntero nulo, y Google Cloud se bloquea en todas las regiones a la vez — y Cloudflare cae con él, luego llama a Google "un proveedor de terceros". 12 de junio de 2025, 17:49 UTC. El informe de Google: Service Control, el binario que aprueba cada solicitud de API, en un bucle de bloqueo durante tres horas. El de Cloudflare, la misma tarde: Workers KV, noventa por ciento fallando, dos horas veintiocho.

0:23 Cómo sucedió, por qué un campo en blanco se globalizó en segundos, y quién tiene la culpa. Esto es The Daily Diff, postmortem. 29 de mayo. Service Control recibe una nueva comprobación de cuota, implementada región por región con un

### Cronología: 29 de mayo → 17:45 → bucle de bloqueo → botón rojo → 17:52 Cloudflare

0:35 botón rojo — pero la nueva ruta de código nunca se ejecuta durante el despliegue; nada la activa aún. Sin comprobación de nulos. Sin "feature flag". 17:45. Un cambio de política con campos en blanco aterriza en la tabla de Spanner. La cuota es global, por lo que la fila se replica en todas partes en segundos. Cada binario de Service Control la lee, encuentra el puntero nulo, se bloquea, se reinicia, la lee de nuevo. Cada llamada a la API: 503.

0:55 Google es rápido: triaje en dos minutos, causa raíz en diez. El botón rojo se desactiva en cuarenta, y las regiones pequeñas se recuperan primero. La página de estado publica su primera actualización una hora después, porque se ejecuta en Google Cloud. 17:52. El equipo WARP de Cloudflare ve que nuevos dispositivos no se registran. Workers KV, la mitad de la tienda que Cloudflare usa para configuración e identidad, reside en una nube de terceros. Access falla en cada inicio de sesión — por diseño, falla cerrado.

1:20 Workers AI falla en cada inferencia. 19:11, Gergely Orosz: dos nubes independientes caídas a la vez, nunca visto antes. 19:32, el soporte de Google le dice a un usuario que no hay interrupciones conocidas — pruebe a borrar sus cookies. Todas las demás se recuperan a las 19:48.

### us-central1: el efecto rebaño

1:34 us-central1 no: las tareas de reinicio abruman la misma tabla de Spanner, sin retroceso aleatorio, por lo que Google las limita manualmente. Dos horas cuarenta. Uno: la comprobación de política se encuentra dentro de la ruta de solicitud; cuando la comprobación muere,

### Mecanismo: comprobación en la ruta de solicitud, replicación global, un proveedor

1:46 la API muere. Dos: los datos de cuota se vuelven globales sin preproducción; una fila mala es una fila global. Tres: Cloudflare lo sabía. Workers KV estaba en plena migración a su propio R2, a un solo proveedor — el postmortem lo llama una brecha en la cobertura.

### git blame — la división

2:00 git blame. Google, cincuenta y cinco por ciento: sin comprobación de nulos, sin "feature flag", sin retroceso — su informe dice que una bandera lo habría detectado en preproducción. Replicación global, veinte: una fila, cada región, segundos. Cloudflare, veinte: la mitad de una línea de productos en la tienda de un proveedor, y un postmortem que nunca dice Google. La página de estado, cinco, por vivir de lo que informa. Radio de impacto: setenta productos de Google Cloud, diez aplicaciones de Workspace,

### Radio de impacto

2:23 todas las regiones. Tres horas. En Cloudflare: Access, WARP, Workers AI, Pages, Stream — dos y media. Hacker News, mil cuatrocientos puntos; comentario principal: la página de estado está en verde.

### Veredicto + la línea del lunes

2:33 Veredicto, postmortem: SHIP IT. Ambos postmortems se entregan en treinta horas, ambos se culpan a sí mismos, y las soluciones de Google son concretas: "fail open", banderas desactivadas por defecto, retroceso exponencial. La línea del lunes: código nuevo detrás de una bandera que se envía apagada, y una comprobación de nulos donde entran los datos. Envíame el incidente del que aún no te permiten hablar, en los comentarios, o en the daily diff dot dev. Y ese es el diff de hoy.

2:53 Soy Niko de Axrisi. Fusiona con responsabilidad.

## Fuentes

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