#Hello - API rate limits hit even when resetting config

1 messages · Page 1 of 1 (latest)

autumn reefBOT
#

Two common gotchas here:

  1. The 429 is coming from whatever provider your default model is on (often openai-codex/* when you used ChatGPT/Codex OAuth). That rate limit window is separate from “my API key has credit”.
  2. openclaw reset wipes files, but if your Gateway daemon is still running, it may still be using the old in-memory auth/model config until you restart it (and if you’re in remote mode, you might be resetting the wrong machine).

Quick checks (please paste outputs)

  1. Version (important):
openclaw --version
  1. Gateway status (tells us local vs remote + what it’s actually using):
openclaw gateway status
  1. Which provider is actually selected + whether profiles are in cooldown (no --probe please; probes can trigger more rate limits):
#
openclaw models status
openclaw models status --json

In the JSON, look for auth.unusableProfiles and the resolved default model/provider.

  1. Paste the exact 429 error line from logs (just the relevant chunk):
openclaw logs --limit 200

Things to try immediately

  • Restart the gateway after reset (on the gateway host):
openclaw gateway restart
#
  • If you’re using profiles (OPENCLAW_PROFILE), make sure you reset the same profile the gateway is running under. The FAQ calls this out explicitly.
    Docs: https://docs.openclaw.ai/help/faq (search “reset”)

  • If your default model is still openai-codex/*, you’re still on Codex OAuth (ChatGPT sign-in) and will keep seeing its rate limits. To switch to an API-key-backed provider, use the auth helper + then set the model:

openclaw models auth add
openclaw models set <whatever-you-picked>

Docs: https://docs.openclaw.ai/cli/models and https://docs.openclaw.ai/cli/reset

If you paste the 4 outputs above, I can tell you exactly which provider is rate-limiting you and what knob to turn.

#

Good — that narrows it down a lot. Your gateway is local (127.0.0.1:18789) and healthy (RPC probe: ok), and you’re on a current version (2026.3.13).

Now the key missing bit is: which provider/model is actually being used when you hit the 429. The “Providers w/ OAuth/tokens … anthropic … openai-codex …” line only means those profiles exist; it doesn’t prove which one is currently selected.

Next two things to paste

  1. Full model resolution (this will show the default model + fallbacks):
openclaw models status
  1. The exact 429 from logs (it usually includes the provider name):
openclaw logs --limit 200

Two likely causes (based on what you described)

  • Still on openai-codex/* (ChatGPT/Codex OAuth): Codex OAuth has its own rate limits/windows that can last the rest of the day. Even if you add an API key “with credit”, you’ll keep getting 429s until you actually switch the default model/provider away from openai-codex/*.
#
  • Gateway never actually switched to the API-key provider (common if you added the key in a shell, but the gateway is running as a systemd user service and doesn’t inherit that env). If that’s the case, models status will show your OpenAI API key as missing/placeholder, and it’ll fall back to whatever token profile exists (often openai-codex).

Once you paste models status + the log snippet, I’ll tell you exactly which one it is and the quickest way to force it onto the API-key-backed provider.

#

That JSON is the important clue:

  • Your defaultModel/resolvedDefault is openai/gpt-5.3-codex
    → that’s the openai/* provider (API-key billing), not the openai-codex/* ChatGPT OAuth provider.

So the “Providers w/ OAuth/tokens: … openai-codex …” line is basically just “these creds exist on disk”, not “this is what you’re currently using”.

What I need next (to stop guessing)

  1. Paste the openai provider block from that same openclaw models status --json output (a bit further down than where you cut it). I’m looking for whether OpenClaw thinks OpenAI auth is coming from:
  • env (OPENAI_API_KEY marker),
  • an auth profile,
  • or something missing/disabled.
  1. Paste the actual 429 line (OpenAI uses 429 for both “too many requests” and “quota/billing hard limit reached”, and the fix is totally different):
openclaw logs --limit 200
#

(or openclaw logs --follow, trigger one message, then copy the error)

Two very common “429 that lasts all day” causes on OpenAI

  • It’s not a rate window — it’s quota/billing (still returned as HTTP 429). The log will say something like insufficient_quota / “billing hard limit” / “organization has insufficient credits”.
  • A background loop is still hammering the key (cron jobs / heartbeats / another service using the same key), so the window never really cools off.

If you want, also run:

openclaw cron list --all

(just to rule out an automation that’s continuously consuming your OpenAI limits)

Once you paste the OpenAI provider block + the exact 429 error payload, I can tell you precisely whether this is “switch model/provider”, “fix key visibility to the daemon”, or “OpenAI billing/limits issue”.

#

That snippet helps a lot — it confirms OpenClaw is seeing and using an OpenAI API key:

  • provider: "openai" … apiKey: 1 … label: openai:default=sk-proj-...
  • and separately you still have openai-codex:default=OAuth (ChatGPT OAuth)

Having the openai-codex OAuth profile doesn’t cause the OpenAI API key to be rate-limited — it’ll only be used if you actually pick an openai-codex/... model. So you can ignore that part for now.

What we need to unstick this is the exact 429 payload, because OpenAI returns HTTP 429 for two different problems:

  1. Real rate limit (rate_limit_exceeded, RPM/TPM)
  2. Quota/billing/project budget issue (insufficient_quota / “billing hard limit reached”) — this one can persist “forever” until billing/budget is fixed, even if you wait overnight.

Can you paste the error block from logs?

openclaw logs --limit 200
#

(look for the OpenAI response JSON with error: { message, type, code })

Also quick sanity check that catches a lot of “I have credit but still 429” cases: your key is sk-proj-... (project-scoped). In the OpenAI dashboard, make sure that specific Project has:

  • an active payment method, and
  • a non-zero budget/spend limit (not $0)

ChatGPT subscription/“ChatGPT credit” doesn’t apply to the API, and budgets are per-project with sk-proj keys.

If you paste the exact error.code + message, I’ll tell you which branch it is and the fastest fix.

#

That models status output basically answers the “which auth path am I actually using?” question:

  • You are NOT using ChatGPT OAuth right now.
    Your Default = openai/gpt-5.3-codex (provider openai, i.e. OpenAI API key), and you have:
  • openai:default=sk-proj-... (API key) âś… this is what’s being used
  • openai-codex:default=OAuth (ChatGPT OAuth) âś… present, but idle unless you pick an openai-codex/... model

So the persistent “rate limit” you’re seeing is almost certainly coming from the OpenAI API project behind that sk-proj-... key, not from the OAuth token.

The gotcha: OpenAI returns HTTP 429 for “quota/billing” too

A 429 that lasts overnight is very often not RPM/TPM — it’s “quota / budget / billing hard limit reached” (still reported as 429).

With sk-proj-... keys, you must check that exact Project in the OpenAI dashboard:

  • payment method attached
  • project budget/spend limit not set to $0
  • you’re looking at API billing (ChatGPT Plus doesn’t count)
#

Next step (so we stop guessing): paste the actual 429 payload

Please grab the OpenAI error JSON from logs:

openclaw logs --limit 200

What I’m looking for is the OpenAI error.code / error.type (e.g. insufficient_quota vs rate_limit_exceeded). Once you paste that block, I can tell you the exact fix.

Quick unblock option

Since you already have anthropic:default configured, you can also temporarily switch your default/fallback provider away from OpenAI just to confirm it’s an OpenAI-side limit (but the log payload is still the key piece).

#

Those log lines are just the gateway startup (no 429 in there yet) — so we still haven’t captured the actual OpenAI error payload.

The good news: cron is 0 jobs, so this doesn’t look like a runaway loop. Heartbeat is every 30 min, not enough to keep you pinned.

Can you grab the lines around the failure from the log file it prints?

Your gateway says the log is here:

/tmp/openclaw/openclaw-2026-03-16.log

  1. Trigger the error once (send a message that makes it call the model)
  2. Immediately run:
tail -n 200 /tmp/openclaw/openclaw-2026-03-16.log

(or if you want to filter it)

#
tail -n 400 /tmp/openclaw/openclaw-2026-03-16.log | grep -i -E "openai|429|rate|quota|insufficient|limit"

What I’m specifically looking for is the OpenAI JSON error block with something like:

  • error.code = "insufficient_quota" / “billing hard limit” → project billing/budget issue
  • error.code = "rate_limit_exceeded" → RPM/TPM limit for that model/key
  • sometimes it also includes headers / reset times

While you grab that: one very likely cause with sk-proj-...

If the error message says anything like “check your plan and billing details”, that’s not a cooldown-able rate limit — it means the Project behind that sk-proj key has no billing / a $0 budget cap. ChatGPT subscription doesn’t count for API.

Paste the tail output and I’ll tell you exactly which one it is and the fastest fix.

#

Nice, that log line finally tells us what’s going on — and it’s not a “wait a few hours” rate-limit.

You’re hitting a hard TPM (tokens-per-minute) ceiling on OpenAI:

Limit 10000, Requested 12408
“Request too large … on tokens per min (TPM)”

That means a single request (prompt + tool schemas + expected output) is bigger than what your org is allowed to process per minute, so it can fail immediately forever, no matter how long you “cool off”.

Fix options (pick the easiest)

  1. Reduce tokens in the request
  • Start a fresh session / don’t include a huge chat history
  • Don’t paste big logs into the agent message (or paste only the relevant 20–40 lines)
  • Ask for shorter outputs (“answer in bullets”, “max 10 lines”, etc.)
  1. Reduce tool-schema overhead (often thousands of tokens)
  • If you’re not using browser/coding tools, configure OpenClaw to allow fewer tools (smaller schema sent to the model).
#

(This is a big lever for Codex-ish models.)

  1. Increase your OpenAI limits
  1. Quick workaround: switch model/provider
  • You have an Anthropic token configured, so you can switch default/fallback to that to get unstuck.
  • Or, if you really meant “use ChatGPT OAuth”, you’d need to switch to an openai-codex/... model (right now your default is openai/gpt-5.3-codex, i.e. API-key).

If you tell me what message/prompt you were sending when it triggered (and whether you actually need browser/coding tools), I can suggest the smallest change that’ll drop you under that 10k TPM threshold.

#

Perfect — those two lines explain everything. You’re not in a “cool down and it’ll go away” situation; you’re hitting two separate OpenAI limits for openai/gpt-5.3-codex:

  1. TPM (tokens/min) hard fail (instant)

Limit 10000, Requested 12408 → “Request too large … the input or output tokens must be reduced”

So any request whose (prompt + tool schemas + allowed output) totals >10k tokens will always fail immediately. Waiting won’t help.

  1. RPM (requests/min) hard cap

RPM: Limit 3, Used 3 … Please try again in 20s

That means after 3 calls in a minute, everything gets 429 until the window resets. With retries/bootstrapping it’s easy to hit.

What to do

#
  • Immediate workaround (no OpenAI changes):

  • Switch your default (or add fallbacks) to Anthropic since you already have anthropic:default configured, so OpenClaw can keep working while OpenAI is constrained.

  • Alternatively, if you truly want “ChatGPT OAuth”, you’d need to switch to an openai-codex/... model — right now you’re using the OpenAI API key model (openai/gpt-5.3-codex).

  • Reduce request size to get under 10k TPM:

  • start a fresh session / avoid long history

  • keep prompts short

  • ask for shorter answers

Also note: you currently have Fallbacks (0), so OpenClaw can’t fail over when OpenAI 429s — adding any fallback makes this dramatically less painful.

If you tell me whether you want to stick with OpenAI API key vs ChatGPT OAuth, I can suggest the cleanest config direction (OpenAI+fallbacks vs openai-codex default).

opal escarp
#

All I'm saying is 'hello' and its api rate limit hits

autumn reefBOT
#

Yep — that’s the smoking gun. You’re currently running OpenAI API (openai/*) on gpt-5.3-codex with extremely low limits:

  • TPM: Limit 10000, Requested 12408 → a single request is too big, so it can fail instantly forever.
  • RPM: Limit 3, Used 3 → after 3 calls in a minute you’ll always get 429s until the window resets.

So resets/cooldowns won’t reliably fix it — you’re just bumping into your org’s configured caps for that model (org-t5k…).

What to do next (actionable)

A) If you actually want “ChatGPT OAuth” (your openai-codex:default=OAuth):
Right now you’re not using it because your Default is openai/gpt-5.3-codex. Switch the model to the OAuth provider:

openclaw models list | grep -E '^openai-codex/' | head
openclaw models set openai-codex/<pick-one-from-the-list>

B) If you want to stay on the OpenAI API key (sk-proj-…):

#

C) Add a fallback so OpenClaw doesn’t hard-fail on 429s (you already have Anthropic auth):

openclaw models list | grep -E '^anthropic/' | head
openclaw models fallbacks add anthropic/<pick-one-from-the-list>

If you tell me which direction you prefer (A: ChatGPT OAuth vs B: OpenAI API key), I can suggest the cleanest “set + fallback” combo so you stop getting wedged.

#

Totally believable — with OpenClaw, even "hello" still sends a big request because it includes the agent’s system prompt + all enabled tool schemas.

And your own logs show it’s failing before your message content matters:

  • TPM Limit 10000, Requested 12408 → that’s an instant hard-fail. Waiting doesn’t help.
  • plus you’re also on RPM Limit 3 → super low tier, so retries boot you out fast.

Quick ways to get unstuck

Option 1 (fastest): switch away from OpenAI API for now

You already have Anthropic auth working:

openclaw models list | grep -E '^anthropic/' | head
openclaw models set anthropic/<one-from-the-list>
#

(Then you can optionally add a fallback later.)

Option 2: if you meant “use ChatGPT OAuth”

Right now you’re not using it (your default is openai/..., not openai-codex/...). Switch to an openai-codex model:

openclaw models list | grep -E '^openai-codex/' | head
openclaw models set openai-codex/<one-from-the-list>

Option 3: stay on OpenAI API, but you must fix limits and/or shrink the baseline prompt

  • Increase your OpenAI org/project limits (your logs literally suggest adding a payment method). With 3 RPM / 10k TPM, OpenAI API is basically unusable for a tool-heavy agent.
  • Shrink the baseline prompt by allowing fewer tools (this can drop thousands of tokens). Docs: https://docs.openclaw.ai/tools
    For a Telegram-only bot, a minimal allowlist can help a lot (e.g. allow only group:messaging).

If you tell me which direction you want (Anthropic vs ChatGPT OAuth vs OpenAI API), I can suggest the cleanest “set default + add fallback” combo so “hello” works immediately.

opal escarp
#

So listen. I was on chatgpt Oauth yesterday and I was returning the APi rate limit hits
I switched to open AI API key today. How I was experiencing the same issue so so will going back to oauth revert the issue

#

hoo