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 text | Comes from | First thing to try |
|---|---|---|
| API rate limit reached | Model provider | Lower lane concurrency |
| Concurrency limit exceeded for account | Model provider | Lower subagent concurrency |
| Gateway lockout after repeated calls | OpenClaw gateway | Wait 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.
Related guides
- Where is the OpenClaw config file, and how do you change its location?The short answer is ~/.openclaw/openclaw.json, written in JSON5. The longer answer matters when your edits appear to be ignored, which is almost always a second config file or an environment variable winning over the one you edited.
- OpenClaw error: gateway connect failed, pairing requiredThis error means the gateway is running and reachable, but it does not trust the client that just connected. Nothing is broken. The device simply has no approved identity yet, and there are four different reasons that can happen.
- How to Fix "Hermes backend exited before it became ready"The number in the brackets decides everything. Zero means a healthy backend shut itself down, usually a Windows watchdog misfire, and any other number means it genuinely failed, usually an update applied while Hermes was still running.
- How to Fix "Timed out connecting to Hermes backend after 15000ms"The 15000ms timeout is a single slow answer from a healthy local backend, not a broken agent or a bad API key. Running the terminal version once warms the cache and clears it in most cases, and the underlying stall was repaired upstream in release v2026.7.1.
