Skip to main content

🚫 Error 429 – Demasiadas solicitudes (Too Many Requests)

El error 429 ocurre cuando un cliente (usuario, navegador, app, script o bot) envía demasiadas solicitudes en un periodo muy corto, superando los límites de velocidad establecidos por el servidor.

Es una forma de protección anti-abuso, utilizada para evitar:

  • Sobrecarga del servidor

  • Ataques de fuerza bruta

  • Bots agresivos

  • Interacciones automáticas excesivas

  • Spam en formularios o APIs

El servidor dice básicamente:
“Estás enviando demasiadas peticiones. Espera un momento antes de volver a intentarlo.”


Causas más comunes

  • Exceso de solicitudes por usuario o IP en poco tiempo.

  • 🤖 Bots o crawlers sin control.

  • 🔐 Intentos repetidos de login (ataques de fuerza bruta).

  • 📡 Scripts que consultan APIs demasiado rápido.

  • 🔁 Lazos o bucles en código que generan peticiones repetitivas.

  • 🌍 Muchos usuarios accediendo desde la misma IP (empresas, universidades, proxies).

  • 🧩 Reglas estrictas de rate limiting en cPanel, Cloudflare, APIs o firewall.


🔧 Soluciones recomendadas

1️⃣ Esperar el tiempo indicado en la cabecera Retry-After

El servidor puede responder con:


Retry-After: 30

Significa: esperar 30 segundos antes de reintentar.


2️⃣ Reducir la frecuencia de solicitudes

En APIs o scripts:

  • Implementar retrasos (delays)

  • Usar caching

  • Agrupar solicitudes (“batch requests”)

Ejemplo en JavaScript:


await new Promise(r => setTimeout(r, 500)); // Espera 0.5s

3️⃣ Optimizar consultas a APIs

Evitar:

  • Hacer la misma consulta muchas veces

  • Pedir datos que no cambian

  • No usar tokens de actualización o caché


4️⃣ Configurar rate limiting en tu servidor/backend

En Nginx:


limit_req zone=limite burst=10 nodelay;

En Laravel:

Middleware:


Route::middleware('throttle:60,1')->group(function () { // 60 solicitudes por minuto });

En Node.js (Express):


app.use(rateLimit({ windowMs: 60000, max: 60 }));

5️⃣ Revisar Cloudflare u otros servicios de protección

Cloudflare puede devolver 429 cuando:

  • Detecta tráfico sospechoso

  • Hay demasiadas solicitudes por IP

  • Se activa un rule de seguridad

Solución: ajustar las reglas o agregar excepciones.


6️⃣ Prevenir ataques de fuerza bruta

429 aparece durante:

  • Demasiados intentos fallidos de login

  • Bots intentando contraseñas repetidas

Implementa:

  • Captcha

  • 2FA

  • Bloqueo temporal de IP

  • Retrasos progresivos en login


7️⃣ Detectar loops o errores en tu propio código

Un bucle infinito enviando peticiones → 429 inmediato.

Revisar:

  • Cronjobs

  • Webhooks

  • Integraciones automáticas

  • Scripts que se ejecutan múltiples veces


🔐 Consejo Pro

El 429 no significa que algo esté roto, sino que debes:

  • Controlar la velocidad de solicitudes

  • Usar caché siempre que sea posible

  • Implementar backoff exponencial

  • Optimizar integraciones con APIs