429 Too Many RequestsConcurrency limit exceeded for user, please retry laterA batch script that works with 1 worker and fails with 20An agent that fails only when it starts several subtasks at onceTwo apps on the same account that break each otherEl mensaje viene de sub2api, el gateway de código abierto sobre el que funcionan muchos servicios de relay de API, así que puedes encontrarlo en más de un proveedor. El límite es por cuenta de usuario, no por clave: dos claves de la misma cuenta comparten el mismo cupo. El valor por defecto de sub2api son 5 peticiones simultáneas.
El gateway no rechaza la sexta petición de inmediato. La pone en una cola y la arranca en cuanto se libera un hueco. Lo medimos en nuestro propio gateway el 14 de octubre de 2026 con límite 5: 10 peticiones a la vez, las 10 con éxito y la más lenta tardó 8,3 segundos; 25 a la vez, las 25 con éxito y la más lenta tardó 18,8 segundos. Las peticiones de más esperaron en lugar de fallar. Así que, cuando ves este error, no te pasaste del límite un instante: te mantuviste por encima tanto tiempo que una petición no consiguió hueco a tiempo.
Por eso aparece con peticiones largas y no con muchas cortas. Una respuesta en streaming, un modelo de razonamiento pensando un minuto o un agente esperando una herramienta ocupa su hueco todo ese tiempo. Cinco así a la vez llenan la cuenta, y todo lo que viene detrás espera hasta rendirse.
Lanza diez peticiones idénticas a la vez y mira los tiempos:
seq 1 10 | xargs -P 10 -I{} curl -s -o /dev/null \
-w '%{http_code} %{time_total}s\n' \
'YOUR_BASE_URL/chat/completions' \
-H 'Authorization: Bearer YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"model":"YOUR_MODEL","messages":[{"role":"user","content":"Count from 1 to 150."}]}'
Si las primeras vuelven rápido y el resto llega en oleadas posteriores, esas oleadas son tu límite. Si alguna devuelve 429 con este mensaje, la cola se desbordó: baja el número de -P hasta que ninguna lo haga. Ese es el paralelismo que tu cuenta soporta de verdad.
asyncio.Semaphore(5) en Python, p-limit en Node. Un bucle de reintentos más lento no lo arregla; el límite cuenta peticiones abiertas, así que solo ayuda tener menos abiertas.| Peticiones enviadas a la vez | Con éxito | Respuesta más lenta |
|---|---|---|
| 10 (límite 5) | 10 de 10 | 8,3 s |
| 25 (límite 5) | 25 de 25 | 18,8 s |
Revisado por última vez el 2026-10-14. Escrito a partir de problemas diagnosticados en una pasarela compatible con OpenAI en producción, no recopilado de otras webs.