Skip to content

OpenClaw error: API rate limit reached, please try again later

The single most useful thing to know about this error is that OpenClaw did not produce it. It is relaying a 429 from whichever model provider it was calling, so the fix is on the provider side or in how hard OpenClaw is hitting it.

The message shows up in several shapes, all of them the same underlying event:

API rate limit reached. Please try again later.
api rate limit reached openclaw
Concurrency limit exceeded for account, please retry later

Start here: OpenClaw is not the one limiting you

OpenClaw is a gateway. When your agent needs a model, OpenClaw calls Anthropic, OpenAI, OpenRouter, or whichever provider you configured. If that provider returns HTTP 429, OpenClaw surfaces the message rather than inventing one. So the limit belongs to your provider account, and no amount of restarting OpenClaw will move it.

There is a separate gateway-side rate limit inside OpenClaw, typically ten requests per sixty seconds with a five minute lockout, but that one protects the gateway from clients and produces a different error. If you are reading "API rate limit reached", you are looking at the provider.

Step 1: find out which provider threw it

openclaw logs --follow

The line immediately before the error names the provider and usually the model. This matters, because a fallback chain means the provider that failed may not be the one you think you are using.

Step 2: turn down how hard OpenClaw hits the provider

This is the fix that actually holds. Agents fan out, and subagents fan out further, so a single instruction can become a burst of parallel calls. The queue configuration in openclaw.json controls that:

{
  // Example values, not documented defaults. Set them explicitly
  // rather than assuming what the built-in behaviour is.
  queue: {
    mode: "collect",
    debounceMs: 1000,
    cap: 20,
    drop: "summarize",
    lanes: {
      main: { concurrency: 4 },
      subagent: { concurrency: 8 },
    },
  },
}

The subagent lane is the one to look at first, because agents that spawn subagents multiply requests fast. If that lane is set high relative to your provider tier, lower it. Halving both lanes is a reasonable first move, and you can raise them again once the errors stop. If your config has no queue block at all, add one with explicit numbers so the behaviour is something you chose rather than something you inherited.

Step 3: reduce the size of each call, not just the count

Most providers meter tokens per minute as well as requests per minute, so a few very large calls can trip the limit as easily as many small ones. Keep compaction enabled so long conversations get summarised instead of resent in full, and keep an eye on how much your agent bootstrap files add to every single request.

Step 4: give it somewhere else to go

Configuring a second provider means a throttle degrades performance instead of stopping work. OpenClaw supports a wide range of them, including OpenAI-compatible endpoints such as OpenRouter, Groq, Mistral, Together and Cerebras, plus local models through Ollama or vLLM. A local model as the last fallback is slow but it never returns 429.

When it is genuinely your plan

If concurrency is already low and the calls are small, you are simply at the ceiling of your provider tier and the answer is to raise it. Before you do, confirm the traffic is real. A scheduled job that fires more often than you remember, or a messaging channel replying to its own output, both look identical to legitimate load from inside the rate limit error.

Quick reference

Error textComes fromFirst thing to try
API rate limit reachedModel providerLower lane concurrency
Concurrency limit exceeded for accountModel providerLower subagent concurrency
Gateway lockout after repeated callsOpenClaw gatewayWait out the lockout, then fix the client loop

Frequently asked questions

Is this OpenClaw limiting me?
No. OpenClaw has its own gateway rate limit, but that produces a different message and locks out the caller. This message is a provider 429 passed straight through.
Will upgrading my plan fix it?
Upgrading your provider tier raises the ceiling, which helps if you are genuinely at the limit. It does nothing if the real cause is a runaway subagent fan-out, so check concurrency first.
What is the difference from concurrency limit exceeded?
Rate limit counts requests or tokens over time. Concurrency counts requests in flight at once. Both come from the provider, and lowering lane concurrency helps with the second one directly.
Fix: API rate limit reached in OpenClaw