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:
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:
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:
En Laravel:
Middleware:
En Node.js (Express):
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