#Switching to Gemini from Claude

1 messages Β· Page 1 of 1 (latest)

fringe heron
#

I hacve had a lot of trouble switching to gemini from claude. I'd like to start over with your assistance.

paper ridgeBOT
tawdry pilot
#

Hello. I am a Senior Software Engineer. I think I can help you resolve your issue. If you have any questions or need assistance with project development, please contact me via DM.

rancid templeBOT
#

Let’s keep troubleshooting in-thread instead of DMs, so the fix stays searchable for everyone.

For a clean restart on Gemini, please paste these first:

openclaw --version
openclaw status
openclaw models status

Also tell me which path you want:

  1. Gemini API key via google (usually the simplest), or
  2. Gemini CLI OAuth via google-gemini-cli

Docs I’m using:
https://docs.openclaw.ai/help/faq

fringe heron
#

API

Here is OpenClaw's response:
Update available (npm 2026.4.14). Run: openclaw update
Next steps:
Need to share? openclaw status --all
Need to debug live? openclaw logs --follow
Need to test channels? openclaw status --deep

🦞 OpenClaw 2026.4.12 (1c0672b)
Your config is valid, your assumptions are not.

Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : google/gemini-3.1-pro-preview
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (3) : sonnet -> anthropic/claude-sonnet-4-6, opus -> anthropic/claude-opus-4-6, gemini -> google/gemini-3.1-pro-preview
Configured models (3): anthropic/claude-sonnet-4-6, anthropic/claude-opus-4-6, google/gemini-3.1-pro-preview

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

  • anthropic effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | anthropic:default=sk-ant-a...2d34EgAA
  • google effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=2 (oauth=0, token=1, api_key=1) | google:default=AIzaSyCN...1s3h2O5A, google:manual=token:AIzaSyCN...1s3h2O5A | env=AIzaSyCN...1s3h2O5A | source=env: GEMINI_API_KEY
  • google-gemini-cli effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | google-gemini-cli:default=AIzaSyCN...1s3h2O5A

OAuth/token status

  • google
    • google:manual static
      calebmarkus@calebs-Mac-mini ~ %
rancid templeBOT
#

This is actually pretty close.

From what you pasted, OpenClaw is already configured to use Gemini via the google provider:

  • default model is on google/...
  • auth is resolving from GEMINI_API_KEY
  • Anthropic still being present is not a problem by itself

So this does not look like β€œstill stuck on Claude” at the config level.

The next thing I’d check is whether live Gemini requests are succeeding. Please run:

openclaw models status --probe --probe-provider google

Then paste that output.

fringe heron
#

🦞 OpenClaw 2026.4.12 (1c0672b)
Type the command with confidenceβ€”nature will provide the stack trace if needed.

β”‚
β—‡
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : google/gemini-3.1-pro-preview
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (3) : sonnet -> anthropic/claude-sonnet-4-6, opus -> anthropic/claude-opus-4-6, gemini -> google/gemini-3.1-pro-preview
Configured models (3): anthropic/claude-sonnet-4-6, anthropic/claude-opus-4-6, google/gemini-3.1-pro-preview

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

  • anthropic effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | anthropic:default=sk-ant-a...2d34EgAA
  • google effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=2 (oauth=0, token=1, api_key=1) | google:default=AIzaSyCN...1s3h2O5A, google:manual=token:AIzaSyCN...1s3h2O5A | env=AIzaSyCN...1s3h2O5A | source=env: GEMINI_API_KEY
  • google-gemini-cli effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | google-gemini-cli:default=AIzaSyCN...1s3h2O5A

OAuth/token status

  • google
    • google:manual static
#

Auth probes
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Model β”‚ Profile β”‚ Status β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ google/gemini-3. β”‚ google:default (api_ β”‚ ok Β· 9.3s β”‚
β”‚ 1-pro-preview β”‚ key) β”‚ β”‚
β”‚ google/gemini-3. β”‚ google:manual (token) β”‚ unknown Β· - β”‚
β”‚ 1-pro-preview β”‚ β”‚ ↳ Excluded by auth.order for β”‚
β”‚ β”‚ β”‚ this provider. β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Probed 1 target in 12.2s

rancid templeBOT
#

That’s the plain openclaw models status output again, not the live probe. No worries.

Please run this exactly and paste the result:

openclaw models status --probe --probe-provider google

That makes a real Gemini request, which is the part we still haven’t verified.

Also tell me the exact symptom you’re seeing right now:

  • no reply
  • auth error
  • still seems to use Claude
  • tools fail
  • something else
#

From the config you pasted, Gemini is already the default, so the remaining problem is probably either:

  1. a live Google request/auth issue, or
  2. an old session not picking up the switch

Docs for the command: https://docs.openclaw.ai/cli/models

#

Perfect, that’s the key result.

Your Gemini API path is working. The live probe succeeded, so this is not a Google auth/config failure anymore.

That means the likely issue is now one of these:

  1. an old session still carrying the previous model choice, or
  2. a channel/runtime issue unrelated to Gemini auth

Next test

In the chat where you actually use your bot, do this from a fresh conversation/session:

  1. start a new chat/thread
  2. run /model status once, or /model
  3. send a simple test prompt

A fresh session matters because old sessions can keep earlier model selection state.

#

Important

The leftover Anthropic entries in your config are not the blocker right now. I’d leave them alone until we confirm behavior.

If the fresh session still fails, paste these next:

openclaw status --deep
openclaw logs --follow

and tell me what the bot does on one test message, for example no reply, error, wrong model, etc.

Docs:
https://docs.openclaw.ai/concepts/models
https://docs.openclaw.ai/help/faq

fringe heron
#

🦞 OpenClaw 2026.4.12 (1c0672b) β€” Ah, the fruit tree company! 🍎

β”‚
β—‡
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : google/gemini-3.1-pro-preview
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (3) : sonnet -> anthropic/claude-sonnet-4-6, opus -> anthropic/claude-opus-4-6, gemini -> google/gemini-3.1-pro-preview
Configured models (3): anthropic/claude-sonnet-4-6, anthropic/claude-opus-4-6, google/gemini-3.1-pro-preview

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

  • anthropic effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | anthropic:default=sk-ant-a...2d34EgAA
  • google effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=2 (oauth=0, token=1, api_key=1) | google:default=AIzaSyCN...1s3h2O5A, google:manual=token:AIzaSyCN...1s3h2O5A | env=AIzaSyCN...1s3h2O5A | source=env: GEMINI_API_KEY
  • google-gemini-cli effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | google-gemini-cli:default=AIzaSyCN...1s3h2O5A

OAuth/token status

  • google
    • google:manual static
#

Auth probes
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Model β”‚ Profile β”‚ Status β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ google/gemini-3. β”‚ google:default (api_ β”‚ ok Β· 9.4s β”‚
β”‚ 1-pro-preview β”‚ key) β”‚ β”‚
β”‚ google/gemini-3. β”‚ google:manual (token) β”‚ unknown Β· - β”‚
β”‚ 1-pro-preview β”‚ β”‚ ↳ Excluded by auth.order for β”‚
β”‚ β”‚ β”‚ this provider. β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Probed 1 target in 14.3s

rancid templeBOT
#

I think we’re talking past each other a bit.

That β€œAh, the fruit tree company! πŸŽβ€ line is just an OpenClaw CLI joke banner, not evidence that Claude or Gemini answered.

From everything you’ve pasted so far, the situation is:

  • default model is Google/Gemini
  • Gemini auth is valid
  • live Gemini probe succeeded

So the switch itself is already working.

What I need now is the actual runtime symptom from your bot/chat surface.

Please answer this in one line:

  • A: no reply
#
  • B: explicit error
  • C: replies, but seem wrong / β€œstill Claude”
  • D: tools fail
  • E: something else

If it’s A or B, then do one test message to your bot and paste the fresh log lines from:

openclaw logs --follow

right after that failed message.

Troubleshooting docs: https://docs.openclaw.ai/gateway/troubleshooting

#

That probe is green again. So the Claude β†’ Gemini switch is verified.

At this point, there isn’t another Gemini auth/config setting left to debug from these outputs.

Please stop on the status/probe commands for a moment and do this instead

  1. Open a fresh chat/session with your bot
  2. Send one simple message, for example: say hello
  3. Paste one of these back here:
    • the bot’s exact reply, or
    • the exact error, or
    • if there is no reply, the fresh lines from:
openclaw logs --follow
fringe heron
#

you want this in terminal or OpenClaw chat interface?
openclaw logs --follow

rancid templeBOT
#

Terminal for the logs.

So:

  1. In the terminal, run:

    openclaw logs --follow
    
  2. In the OpenClaw chat interface, send one simple test message.

  3. Then paste the new terminal log lines that appear right after that message.

If the chat shows an error directly, paste that too.

fringe heron
#

Log tail truncated (increase --max-bytes).
16:26:41+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat disconnected code=1001 reason=n/a conn=9c8d82bf-fdf7-484b-9705-4b145f65caed
16:26:41+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat connected conn=edb023d3-9fb4-4739-a41d-fd2e914f0ca2 remote=127.0.0.1 client=openclaw-control-ui webchat v2026.4.12

#

16:26:42+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ commands.list 65ms conn=edb023d3…0ca2 id=8db5d89a…1a60
16:26:42+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ models.list 67ms conn=edb023d3…0ca2 id=d8366d31…bb90
16:26:42+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ node.list 106ms conn=edb023d3…0ca2 id=b33f690d…3f95
16:26:42+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ device.pair.list 107ms conn=edb023d3…0ca2 id=e2434032…ee5d
16:26:50+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"embedded_run_agent_end","tags":["error_handling","lifecycle","agent_end","assistant_error"],"runId":"08c9aa3e-876a-4da3-9acf-3c1b1e7d2e35","isError":true,"error":"The AI service is temporarily overloaded. Please try again in a moment.","failoverReason":"overloaded","model":"gemini-2.5-pro","provider":"google","rawErrorPreview":"{"error":{"message":"{\n \"error\": {\n \"code\": 503,\n \"message\": \"This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.\",\n \"status\": \"UNAVAILABLE\"\n

#

}\n}\n","code":503,"status":""}}","rawErrorHash":"sha256:6ac7f44fd30e","rawErrorFingerprint":"sha256:3341ffdd97b8","providerRuntimeFailureKind":"timeout","providerErrorMessagePreview":"{\n "error": {\n "code": 503,\n "message": "This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.",\n "status": "UNAVAILABLE"\n }\n}"} embedded run agent end
16:26:53+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"embedded_run_agent_end","tags":["error_handling","lifecycle","agent_end","assistant_error"],"runId":"08c9aa3e-876a-4da3-9acf-3c1b1e7d2e35","isError":true,"error":"The AI service is temporarily overloaded. Please try again in a moment.","failoverReason":"overloaded","model":"gemini-2.5-pro","provider":"google","rawErrorPreview":"{"error":{"message":"{\n \"error\": {\n \"code\": 503,\n \"message\": \"This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.\",\n \"status\": \"UNAVAILABLE\"\n }\n}\n","code":503,"status":""}}","rawErrorHash":"sha256:6ac7f44fd30e","rawErrorFingerprint":"sha256:3341ffdd97b8","providerRuntimeFailureKind":"timeout","providerErrorMessagePreview":"{\n "error": {\n "code": 503,\n "message": "This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.",\n "status": "UNAVAILABLE"\n }\n}"} embedded run agent end
16:26:58+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"embedded_run_agent_end","tags":

#

["error_handling","lifecycle","agent_end","assistant_error"],"runId":"08c9aa3e-876a-4da3-9acf-3c1b1e7d2e35","isError":true,"error":"The AI service is temporarily overloaded. Please try again in a moment.","failoverReason":"overloaded","model":"gemini-2.5-pro","provider":"google","rawErrorPreview":"{"error":{"message":"{\n \"error\": {\n \"code\": 503,\n \"message\": \"This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.\",\n \"status\": \"UNAVAILABLE\"\n }\n}\n","code":503,"status":""}}","rawErrorHash":"sha256:6ac7f44fd30e","rawErrorFingerprint":"sha256:3341ffdd97b8","providerRuntimeFailureKind":"timeout","providerErrorMessagePreview":"{\n "error": {\n "code": 503,\n "message": "This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.",\n "status": "UNAVAILABLE"\n }\n}"} embedded run agent end

rancid templeBOT
#

Those lines are just the Control UI reconnecting. They do not show a bot run yet.

Let’s do one tighter test:

  1. In one terminal, run:

    openclaw logs --follow --max-bytes 500000
    
  2. Leave it running.

  3. In the OpenClaw web chat, send a simple message like:

    hello
    
  4. Paste the new log lines that appear immediately after that message.

fringe heron
#

here are some:
16:28:01+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat disconnected code=1001 reason=n/a conn=edb023d3-9fb4-4739-a41d-fd2e914f0ca2
16:28:01+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat connected conn=cf9784bd-0918-468f-b8a7-b424892c6ab7 remote=127.0.0.1 client=openclaw-control-ui webchat v2026.4.12
16:28:01+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ commands.list 71ms conn=cf9784bd…6ab7 id=e9cacd62…b16c
16:28:01+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ chat.history 105ms conn=cf9784bd…6ab7 id=cfb615e6…c00b
16:28:01+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ models.list 74ms conn=cf9784bd…6ab7 id=870a3f68…0029
16:28:01+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ node.list 108ms conn=cf9784bd…6ab7 id=3d25c42e…c2bc
16:28:01+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ device.pair.list 109ms conn=cf9784bd…6ab7 id=069b3acf…5a19
16:28:08+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"embedded_run_agent_end","tags":["error_handling","lifecycle","agent_end","assistant_error"],"runId":"d0071e0d-c8b1-45a8-9043-8a61877b61f3","isError":true,"error":"The AI service is temporarily overloaded. Please try again in a moment.","failoverReason":"overloaded","model":"gemini-2.5-pro","provider":"google","rawErrorPreview":"{"error":{"message":"{\n \"error\": {\n \"code\": 503,\n \"message\": \"This model is currently experiencing high demand. Spikes in demand are usually temporary. Please try again later.\",\n \"status\": \"UNAVAILABLE\"\n

rancid templeBOT
#

Nice, we finally found the real issue.

This is not a Claude vs Gemini switching problem.

Your logs show:

  • OpenClaw is using provider:"google"
  • the request reached Gemini successfully enough to fail at the model layer
  • Google returned 503 UNAVAILABLE / high demand
  • you currently have no fallbacks, so the run stops there

So the story is basically: the switch worked, Gemini was just overloaded.

Why the probe passed earlier

That probe was one successful request. Later, your normal chat request hit a temporary Google overload. Annoying, but it happens.

Best next step

#

I’d add a Google fallback so overloads don’t hard-fail.

openclaw models list --provider google
openclaw models fallbacks add <provider/model>
openclaw models status

Pick a second Google model from the list and add it as a fallback.

Short version

  • If you do nothing: retry later, it may work fine
  • If you want this to be robust: add a fallback

Docs:
https://docs.openclaw.ai/cli/models
https://docs.openclaw.ai/concepts/model-failover

#

If this fixed the mystery, please right-click the solution message β†’ Apps β†’ βœ… Mark Solution so Answer Overflow can index it for the next person.

#

Yep, that’s the same failure repeating.

This confirms the issue is:

  • not Claude
  • not auth
  • not the switch
  • it is Google returning 503 overloads for the current Gemini model

So your next move is one of these:

Option 1, simplest

Wait a bit and retry. This is a provider-side capacity spike.

Option 2, better

Switch to a different Google model, or add one as a fallback:

#
openclaw models list --provider google

and I’ll help you with the exact next command shape.

#

Yep, same exact 503 again. We’ve got the diagnosis now, no more logs needed for this part.

Root cause: Google is rate/capacity-overloaded on the current Gemini model.

So please do one of these next:

  1. Retry later, or
  2. Paste this output so we can switch/add a fallback cleanly:
openclaw models list --provider google

At this point, the Claude β†’ Gemini switch itself is confirmed working. The remaining problem is just the provider overload.

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

#

Thanks, but those are still the same overload logs. We’ve already got the diagnosis.

No more logs for now. The next useful output is a clean Google model list.

Please run this instead:

openclaw models list --provider google --plain

--plain keeps it short and avoids the noisy table output.

Then paste that here, and I’ll help you with the exact next command, either:

  • openclaw models set ...
  • or openclaw models fallbacks add ...
#

If you’d rather not tune it right now, the simple fallback is just: wait a bit and retry. The switch itself is already working.

fringe heron
#

this does not explain why i hit a rate limit after 12 hours of not working. In the morning I say hello and get a rate limit. Fallback is great I set that up yesterday and apparently did it wrong but this thing doesnt even work at all right now. There is plenty of capacity in aistudio rate limit tracking. so I'll set the fallback but its gemini 2.5 pro is unusable. it fails or does not respond EVER

rancid templeBOT
#

Yeah, that’s frustrating, and you’re not crazy.

What your logs show is not β€œyou used up your AI Studio quota.”
They show Google returning:

  • 503
  • UNAVAILABLE
  • β€œhigh demand”

That is a provider-side capacity/admission failure, not your personal usage counter. So AI Studio can show plenty of quota and the model can still refuse requests. Idle time overnight does not prevent that.

So if gemini-2.5-pro is basically unusable for you, I would stop treating it as the primary and move on.

What I’d do

Pick a different Google primary, then add a second Google fallback:

#
openclaw models list --provider google --plain
openclaw models set <different google/...>
openclaw models fallbacks clear
openclaw models fallbacks add <second google/...>
openclaw models status

I’m deliberately not naming specific models here because that changes fast. If you want current hands-on recommendations, ask in #models too.

If you paste the output of:

openclaw models list --provider google --plain

I’ll help you turn it into the exact commands.

fringe heron
#

my friends are using gemini-2.5-pro all day every day. are you making assumptions about it being usable?

rancid templeBOT
#

No, not globally. I’m making a narrow claim from your logs:

in your current OpenClaw setup, requests to Google for that model are coming back with repeated 503 high demand / UNAVAILABLE

That is different from saying β€œgemini-2.5-pro is broken for everyone.”

Your friends using it successfully is useful evidence, but it does not override the fact that your requests are getting 503s. Both can be true at once.

Possible reasons include differences in:

  • account/project
  • request path or request shape
  • regional/backend routing
  • plain bad luck with Google’s admission/load balancing at that moment

If you want to separate Google issue vs OpenClaw issue, the next clean test is:

fringe heron
#

ok so what do i do now?

#

lets switch to Gemini 3.1 Pro

rancid templeBOT
#

I’d do this in two tracks, one to unblock you now, one to debug the root cause.

1. Unblock yourself now

Stop using the currently failing model as your primary in OpenClaw.

Run:

openclaw models list --provider google --plain

Then:

openclaw models set <another google/... from that list>
openclaw models fallbacks clear
#
openclaw models fallbacks add <second google/... from that list>
openclaw models status

That gets you onto a different Google model and gives you a fallback.

2. Debug the root cause separately

Test the same key + same model outside OpenClaw, in AI Studio or a direct Gemini API request.

  • If that also fails, it’s basically a Google-side availability issue for your path/account.
  • If that works, then we dig into why OpenClaw’s request path is getting 503s.

My recommendation

Do #1 first so you’re not blocked, then do #2 if you still want to understand why gemini-2.5-pro is bad in your setup.

If you paste the output of openclaw models list --provider google --plain, I’ll help you turn it into the exact commands.

#

Yep, do this:

openclaw models set google/gemini-3.1-pro-preview
openclaw models status

Then open a fresh chat/session in the OpenClaw UI and test with a simple message.

If you want to wipe the old fallback setup too, you can also do:

openclaw models fallbacks clear

Docs:
https://docs.openclaw.ai/providers/google

fringe heron
#

I entered all that in terminal and nothing happened

rancid templeBOT
#

That may be fine, openclaw models set ... can be pretty quiet.

Run this next:

openclaw models status --plain

If it prints:

google/gemini-3.1-pro-preview

then the switch worked.

After that, open a fresh chat/session in OpenClaw and test it.

#

If models status --plain also shows nothing, paste the exact terminal output you see, even if it’s just the prompt coming back.

fringe heron
#

this is what it said: 16:46:19+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"embedded_run_agent_end","tags":["error_handling","lifecycle","agent_end","assistant_error"],"runId":"8cdb918c-7182-4abe-aa9f-d2e80db48f4f","isError":true,"error":"LLM request failed: network connection error.","failoverReason":"timeout","model":"gemini-2.5-pro","provider":"google","rawErrorPreview":"fetch failed","rawErrorHash":"sha256:e2c73a8fd237","providerRuntimeFailureKind":"timeout"} embedded run agent end
16:46:19+00:00 warn agent/embedded {"subsystem":"agent/embedded"} {"event":"embedded_run_failover_decision","tags":["error_handling","failover","assistant","surface_error"],"runId":"8cdb918c-7182-4abe-aa9f-d2e80db48f4f","stage":"assistant","decision":"surface_error","failoverReason":"timeout","profileFailureReason":null,"provider":"google","model":"gemini-2.5-pro","profileId":"sha256:a94403a4f9d0","fallbackConfigured":false,"timedOut":false,"aborted":false,"rawErrorPreview":"fetch failed","rawErrorHash":"sha256:e2c73a8fd237","providerRuntimeFailureKind":"timeout"} embedded run failover decision

rancid templeBOT
#

That log tells us something important:

you are still running on gemini-2.5-pro, not on Gemini 3.1 Pro yet.

So don’t chase the network error first, the model switch itself has not taken effect for the session you’re testing.

Do this next

In terminal:

openclaw models status --plain

If it prints:

#
google/gemini-3.1-pro-preview

then the config changed, and you need to test in a brand-new chat/session because the old session is still on gemini-2.5-pro.

If it prints google/gemini-2.5-pro or similar, then the switch did not apply, and I want the exact output from:

openclaw models set google/gemini-3.1-pro-preview

Right now the key fact is: the chat run you tested is still using the old model.

Docs:
https://docs.openclaw.ai/cli/models
https://docs.openclaw.ai/concepts/models

fringe heron
#

openclaw models set google/gemini-3.1-pro-preview
20:42:46+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat disconnected code=1001 reason=n/a conn=cf9784bd-0918-468f-b8a7-b424892c6ab7
20:42:46+00:00 info gateway/ws {"subsystem":"gateway/ws"} webchat connected conn=bee787e1-ffd6-465b-be37-28753aefb48c remote=127.0.0.1 client=openclaw-control-ui webchat v2026.4.12
20:42:46+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ commands.list 90ms conn=bee787e1…b48c id=f1fe4439…f488
20:42:46+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ chat.history 136ms conn=bee787e1…b48c id=0fd9462d…d537
20:42:46+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ models.list 92ms conn=bee787e1…b48c id=d8d98039…9430
20:42:46+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ node.list 140ms conn=bee787e1…b48c id=7c7e7582…06c6
20:42:46+00:00 info gateway/ws {"subsystem":"gateway/ws"} ⇄ res βœ“ device.pair.list 140ms conn=bee787e1…b48c id=72bf1772…8ab1

rancid templeBOT
#

Ah, I see what’s happening.

Those lines are not the output of openclaw models set ....
They’re just from your still-running openclaw logs --follow session.

So let’s separate them.

Do this exactly

  1. In the terminal running logs, press:
Ctrl+C
  1. Open a fresh terminal window/tab
#
  1. Run:
openclaw models set google/gemini-3.1-pro-preview
openclaw models status --plain
  1. Paste only the output from models status --plain

What we want to see is:

google/gemini-3.1-pro-preview

Right now you’ve just got log noise mixed in with the command, which is why this feels cursed.

fringe heron
#

🦞 OpenClaw 2026.4.12 (1c0672b)
Runs on a Raspberry Pi. Dreams of a rack in Iceland.

Config overwrite: /Users/calebmarkus/.openclaw/openclaw.json (sha256 7a73835c583e53543bfcefe1bca75b077dc1da82ba2f17a3eeda703119f12b4e -> 1cb0a20960dd88f140658e747194643c15a871e7f35a4b85562a0a91909291a3, backup=/Users/calebmarkus/.openclaw/openclaw.json.bak)
Updated ~/.openclaw/openclaw.json
Default model: google/gemini-3.1-pro-preview

🦞 OpenClaw 2026.4.12 (1c0672b) β€” Half butler, half debugger, full crustacean.

google/gemini-3.1-pro-preview
calebmarkus@calebs-Mac-mini ~ %

rancid templeBOT
#

Nice, that worked. πŸŽ‰

You’ve now actually switched the default model to:

google/gemini-3.1-pro-preview

Next step

Go back to the OpenClaw UI and start a brand-new chat/session, then test with a simple message.

That part matters because an old session can stay on the previous model.

If the new chat works, you’re good.
If it still fails, paste the new log line from that fresh session and we’ll check whether it’s now hitting 3.1 Pro correctly.

Docs: