#error 429

1 messages · Page 1 of 1 (latest)

lean coral
#

why's my gemini api key not working on openclaw anymore
giving (no output) 429 error even though i haven't hit any rate limit

low heraldBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

reef solsticeBOT
#

A 429 from Gemini usually means quota / rate / concurrency on Google’s side (not “bad key”), and it’s very possible to hit it even when the “headline” quota page looks fine (there are separate RPM/TPM/RPD + burst/concurrent limits, and other apps using the same project/key count too).

A quick triage that normally pinpoints it:

  1. Confirm what OpenClaw is actually calling
  • openclaw --version
  • openclaw models status (and if possible openclaw models status --json)
  • openclaw models list (so we can see which Google/Gemini models OpenClaw thinks are available)
  1. Grab the real error body (OpenClaw TUI sometimes shows “no output”)
  • Run: openclaw logs --follow
  • Reproduce the failure once
  • Paste the ~20 lines around the 429 (please redact anything that looks like an API key)

The JSON error payload usually says something like RESOURCE_EXHAUSTED, rateLimitExceeded, quota exceeded, concurrent requests, etc. That message matters.

  1. Most common “I swear I’m not rate limited” causes
#
  • You’re checking the wrong quota surface: Gemini has per-minute / per-day / per-model quotas (and sometimes per-region).
  • OpenClaw can trigger multiple calls per user message (tool planning + tool execution + retries), so you can hit burst/concurrency limits faster than a simple “one prompt” test.
  • Another machine/app is using the same key/project.

Docs that match this flow:

If you drop the outputs from (1) + the log snippet from (2), I can tell you whether it’s (a) quota/burst, (b) wrong provider/auth profile being selected, or (c) an OpenClaw error-masking bug.

lean coral
#

IN PARTS TO BYPASS MESSAGE LIMIT;
part 1

2026.2.12

Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : google/gemini-3-flash-preview
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (1) : gemini-flash -> google/gemini-3-flash-preview
Configured models (1): google/gemini-3-flash-preview

Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -

  • google effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | google:default=AIzaSyB6...Wi1mhkvQ

OAuth/token status

  • none
#

part 2

{
"configPath": "/home/RUDYRANT/.openclaw/openclaw.json",
"agentDir": "/home/RUDYRANT/.openclaw/agents/main/agent",
"defaultModel": "google/gemini-3-flash-preview",
"resolvedDefault": "google/gemini-3-flash-preview",
"fallbacks": [],
"imageModel": null,
"imageFallbacks": [],
"aliases": {
"gemini-flash": "google/gemini-3-flash-preview"
},
"allowed": [
"google/gemini-3-flash-preview"
],
"auth": {
"storePath": "/home/RUDYRANT/.openclaw/agents/main/agent/auth-profiles.json",
"shellEnvFallback": {
"enabled": false,
"appliedKeys": []
},
"providersWithOAuth": [],
"missingProvidersInUse": [],
"providers": [
{
"provider": "google",
"effective": {
"kind": "profiles",
"detail": "~/.openclaw/agents/main/agent/auth-profiles.json"
},
"profiles": {
"count": 1,
"oauth": 0,
"token": 0,
"apiKey": 1,
"labels": [
"google:default=AIzaSyB6...Wi1mhkvQ"
]
}
}
],
"unusableProfiles": [],
"oauth": {
"warnAfterMs": 86400000,
"profiles": [
{
"profileId": "google:default",
"provider": "google",
"type": "api_key",
"status": "static",
"source": "store",
"label": "google:default"
}
],
"providers": [
{
"provider": "google",
"status": "static",
"profiles": [
{
"profileId": "google:default",
"provider": "google",
"type": "api_key",
"status": "static",
"source": "store",
"label": "google:default"
}
]
}
]
}
}
}

Model Input Ctx Local Auth Tags
google/gemini-3-flash-preview text+image 1024k no yes default,configured,alias:gemini-flash

reef solsticeBOT
#

From that output, OpenClaw is seeing your Gemini API key fine (google provider, api_key=1, google:default=AIza…). So this isn’t “key missing” — it’s almost certainly Google returning a real 429 (quota/rate/concurrency/burst), and the OpenClaw surface you’re using is just swallowing the error body (“no output”).

Two things to do next (this will make it obvious what kind of 429 it is):

  1. Capture the actual 429 payload from logs
  • run: openclaw logs --follow
  • reproduce the failure once
  • paste the ~20 lines around the 429 (redact secrets)
  1. Check whether it’s the preview model getting throttled
  • run: openclaw models list
  • if you see non-preview/stable Gemini models in that list, try switching to one of those (preview variants often have stricter/temporary limits)

Also: you’re on 2026.2.12 — if you can upgrade to the latest, it may improve error reporting around provider failures (even if it doesn’t “fix” the 429 itself).

Send “part 2” with the log snippet and I’ll tell you exactly which limit you’re hitting and what the practical workaround is.

#

Thanks — that confirms it even harder: OpenClaw is reading your Gemini API key correctly, and you’ve effectively allowlisted exactly one model:

  • defaultModel: google/gemini-3-flash-preview
  • allowed: only that one
  • fallbacks: none

So if that specific model is getting throttled/blocked on Google’s side, OpenClaw has nowhere else to go and you’ll just see the failure.

What I still need is the actual 429 error payload (that’s what tells us why Google is issuing 429):

1) Please paste the log lines around the 429

Run:

openclaw logs --follow

Trigger the failure once, then paste ~20 lines around the 429 (redact secrets).

#

Google’s 429 body usually says one of:

  • quota exceeded (per-minute / per-day)
  • burst/concurrency limit
  • “insufficient quota / billing” (sometimes surprisingly surfaced as 429)
  • model access gating (preview models can be stricter)

2) Quick workaround to test if it’s “preview-model throttling”

Run:

openclaw models list

…and try setting any non-preview Gemini model you see there (avoid *-preview just for this test). If that works immediately, the issue is basically “that preview endpoint/model is rate-limiting you”, not your key.

3) Optional but likely relevant

You’re on 2026.2.12 — if you can upgrade, newer builds may surface provider error bodies better (even if the root cause is still a Google-side 429).

Drop the openclaw logs --follow snippet and I’ll tell you exactly which bucket this 429 is in and the cleanest fix.

lean coral
reef solsticeBOT
#

Yep — no need to paste the whole thing.

Option A (best): limit the logs right in OpenClaw

Try:

openclaw logs --limit 200

Reproduce the error once, then run it again and copy just the chunk that includes the 429.

If you want it easier to spot:

openclaw logs --limit 400 --json

…then paste only the single JSON entry that has the 429 in it (plus maybe 1 entry before/after).

Option B: filter for just the 429 lines (Linux/macOS/WSL)

#
openclaw logs --limit 2000 | grep -n -C 3 -E " 429|RESOURCE_EXHAUSTED|rate|quota|billing"

That prints matches + 3 lines of context, which is usually all we need.

Option C: upload as a file

If Discord is blocking the paste size, just drag-drop a logs.txt (or screenshot the 429 block). I only need the part that includes the 429 response body.

Once we see the exact 429 message Google returns, we’ll know whether it’s quota/day, RPM/TPM, burst/concurrency, billing, or preview-model gating.

lean coral
#

@reef solstice which gemini models come with google search?