La interrupción en Cloudflare dejó en evidencia lo frágil que puede ser la infraestructura de Internet.
12 de septiembre Cloudflare sufrió una interrupción de más de una hora provocada por un error en el código del panel de control. La falla afectó no solo a la propia interfaz, sino también a numerosos servicios API de la empresa. El problema se debió al uso incorrecto del hook de React useEffect, un mecanismo que, si no se configura adecuadamente, puede provocar bucles incontrolados y sobrecargas.
Como explicaron en la empresa, en el código del panel se implementó una función que llamaba a la API de Tenant Service, responsable de la lógica de autorización de las solicitudes. Sin embargo, en el array de dependencias de useEffect entró un objeto que se recreaba en cada cambio de estado o de props. Como resultado, el hook se activaba no una vez, como se esperaba, sino repetidas veces dentro de un mismo render. Esto derivó en una avalancha de llamadas al Tenant Service, que no estaba diseñado para picos de carga de ese tipo, lo que provocó la caída en cascada de los servicios.
El diagnóstico se complicó porque exteriormente parecía que la propia API estaba inaccesible, aunque la causa real era el panel de control que la sobrecargaba desde dentro. Otra dificultad fue que el sistema de monitorización no permitía distinguir reintentos de ejecuciones de solicitudes verdaderamente nuevas. Por eso a los ingenieros les llevó tiempo relacionar las fallas masivas precisamente con las llamadas cíclicas desde el panel.
Tras el incidente se asignaron recursos adicionales al Tenant Service y se implementó un monitoreo más detallado de la carga. En las llamadas desde el panel ahora se añade información que permite distinguir reintentos de nuevas solicitudes, lo que debería ayudar a detectar este tipo de anomalías más rápidamente. También se señala que useEffect sigue siendo una herramienta potente de React, pero su uso excesivo o descuidado a menudo conduce a errores críticos, como advierte reiteradamente la documentación oficial.
El caso provocó debate en la comunidad. Algunos desarrolladores afirmaron que en torno a useEffect hay conversaciones demasiado negativas, aunque sin él no es posible construir interfaces complejas. Otros, en cambio, están convencidos de que la mayoría de los programadores abusan de este hook, incluyéndolo prácticamente en cada componente sin necesidad. También hubo quienes señalaron la paradoja: una empresa especializada en la protección contra ataques DDoS provocó la caída de su propia API precisamente por una corriente excesiva de solicitudes.
Cloudflare reconoció el error y prometió mejorar los procesos de pruebas para que situaciones similares no se repitan.