Fix 429 "Concurrency limit exceeded" and "Too many pending requests"

What 429 "Concurrency limit exceeded for user" and "Too many pending requests, please retry later" mean on BigModel.io, and how to cap parallel requests and retry.

On this page
  1. What it means
  2. How to fix it
  3. Troubleshooting
  4. Related

You are sending more requests at the same time than your account can run, and one of these comes back with HTTP 429:

json
{ "type": "error", "error": { "type": "rate_limit_error", "message": "Concurrency limit exceeded for user, please retry later" } }
json
{ "type": "error", "error": { "type": "rate_limit_error", "message": "Too many pending requests, please retry later" } }

#What it means

Each account has a number of requests that can run at once. Requests above that number wait in a short queue.

  • "Too many pending requests": the queue was already full, so the request was rejected at once.
  • "Concurrency limit exceeded for user": the request waited in the queue too long without getting a slot.

The message may also end in "for account"; handle it the same way.

The limit is per account, not per key, so several tools on the same account share it. Streaming requests hold their slot until the stream ends, which is why long agent sessions use it up fastest. Rejected requests are not charged.

#How to fix it

  1. Cap your own parallelism. Use a worker pool or semaphore so no more requests run at once than you need. In Dify, n8n or batch scripts, reduce parallel nodes or workers.
  2. Retry with backoff. These 429s carry no Retry-After. Wait 1–2 seconds, then back off exponentially with jitter.
  3. Spread long jobs. Run batch work outside the hours when your agents are busy.
  4. Ask for more. If your workload needs a higher limit, contact Support with your account email and expected parallel requests.
python
import asyncio
limit = asyncio.Semaphore(4)  # at most 4 requests at a time

async def call(client, prompt):
    async with limit:
        return await client.chat.completions.create(model="glm-5.3", messages=[{"role": "user", "content": prompt}])

#Troubleshooting

429 rate_limit_exceeded with a Retry-After header. That is the requests-per-minute limit, not concurrency. Wait the given seconds.

429 that mentions a 5-hour, daily or 7-day limit. That is a spend window on the key. See Limits & rate limits.

Updated · View as Markdown