#Help using Gemma 3 through Google API

1 messages · Page 1 of 1 (latest)

crisp goblet
#

If I try to use Gemini Flash 2.5, it works fine with my API key, but if I try to use a custom model and name it properly, it doesn't respond in the web UI. Also, Gemma 3 is not listed as an option on the api key model selector.

tawny flowerBOT
#

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

ocean frostBOT
# crisp goblet If I try to use Gemini Flash 2.5, it works fine with my API key, but if I try to...

A couple things going on here:

  1. “Gemma 3 not listed” is expected (with a Gemini API key).
    In OpenClaw, provider=google + GEMINI_API_KEY is the Gemini API catalog (Gemini models). Gemma (open-weight) models aren’t exposed via that same google/* catalog, so they won’t show up in the “Gemini API key” model picker.
    If you want Gemma 3, you’ll typically use a different provider (e.g. openrouter/google/gemma-3-27b-it, or other providers that serve Gemma).

  2. “Custom model doesn’t respond in the web UI” is very often the allowlist trap.
    If you have agents.defaults.models set, that becomes a hard allowlist. Picking/typing a model that isn’t in that list results in:

Model "provider/model" is not allowed...
…and you can experience it as “no reply”.

Concrete checks:

  • In chat (or web UI chat), run: /model status
  • On the host, run:
#
openclaw --version
openclaw models status

And to verify what your install thinks is valid for Gemini API models:

openclaw models list --all --provider google --plain

If you paste:

  • the exact model ref you typed (e.g. google/gemini-2.5-flash), and
  • your /model status output (or openclaw models status)

…I can tell you immediately whether it’s (a) allowlist, (b) provider/auth resolution, or (c) something else.

Docs refs:

crisp goblet
#

Here is the output of those commands: PS C:\Users\elibl> openclaw --version
2026.2.3-1
PS C:\Users\elibl> openclaw models status

🦞 OpenClaw 2026.2.3-1 (d84eb46) — I read logs so you can keep pretending you don't have to.

Config : C:\Users\elibl.openclaw\openclaw.json
Agent dir : C:\Users\elibl.openclaw\agents\main\agent
Default : google/gemma-3-27b-it
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (1) : OpenRouter -> openrouter/auto
Configured models (5): google-gemini-cli/gemini-2.5-flash, google/gemini-2.5-flash, google/gemma-3-27b-it, openai/gpt-5, openrouter/auto

Auth overview
Auth store : C:\Users\elibl.openclaw\agents\main\agent\auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (1): google-gemini-cli (1)

  • google effective=profiles:C:\Users\elibl.openclaw\agents\main\agent\auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | google:default=AIzaSyDn...3-H393aM | models.json=AIzaSyDn...3-H393aM | source=models.json: C:\Users\elibl.openclaw\agents\main\agent\models.json
  • Google effective=profiles:C:\Users\elibl.openclaw\agents\main\agent\auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | google:default=AIzaSyDn...3-H393aM | models.json=AIzaSyDn...3-H393aM | source=models.json: C:\Users\elibl.openclaw\agents\main\agent\models.json
  • google-gemini-cli effective=profiles:C:\Users\elibl.openclaw\agents\main\agent\auth-profiles.json | profiles=1 (oauth=1, token=0, api_key=0) | google-gemini-cli:eliblanco502@gmail.com=OAuth (eliblanco502@gmail.com)
  • ollama effective=models.json:ollama-local | models.json=ollama-local | source=models.json: C:\Users\elibl.openclaw\agents\main\agent\models.json
  • openai effective=env:sk-abcde...abcdef12 | env=sk-abcde...abcdef12 | source=env: OPENAI_API_KEY
  • openrouter effective=profiles:C:\Users\elibl.openclaw\agents\main\agent\auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | openrouter:default=sk-or-v1...c34e88d4

OAuth/token status

🦞 OpenClaw 2026.2.3-1 (d84eb46) — Chat automation for people who peaked at IRC.

google/gemini-1.5-flash
google/gemini-1.5-flash-8b
google/gemini-1.5-pro
google/gemini-2.0-flash
google/gemini-2.0-flash-lite
google/gemini-2.5-flash
google/gemini-2.5-flash-lite
google/gemini-2.5-flash-lite-preview-06-17
google/gemini-2.5-flash-lite-preview-09-2025
google/gemini-2.5-flash-preview-04-17
google/gemini-2.5-flash-preview-05-20
google/gemini-2.5-flash-preview-09-2025
google/gemini-2.5-pro
google/gemini-2.5-pro-preview-05-06
google/gemini-2.5-pro-preview-06-05
google/gemini-3-flash-preview
google/gemini-3-pro-preview
google/gemini-flash-latest
google/gemini-flash-lite-latest
google/gemini-live-2.5-flash
google/gemini-live-2.5-flash-preview-native-audio
Google/gemma-3-27b-it
PS C:\Users\elibl>

ocean frostBOT
# crisp goblet Here is the output of those commands: PS C:\Users\elibl> openclaw --version 2026...

That output explains the behavior pretty well.

1) Your “Gemma 3 via Google API key” model is almost certainly not real / not reachable

In openclaw models list --all --provider google, the Gemini API catalog is all the google/gemini-* entries.

The only “Gemma 3” line you have is:

  • Google/gemma-3-27b-it (note the capital G)

That strongly suggests it’s coming from your custom configured models, not from Google’s actual Gemini API model catalog. When you set your default to google/gemma-3-27b-it, the gateway will try to call Google with a model name Google likely doesn’t recognize → request fails → the web UI can look like it “doesn’t respond”.

2) You have a casing/duplication smell in provider resolution

In models status you see both:

  • - google ...
  • - Google ...
#

Provider IDs are expected to be lowercase (google, openrouter, etc). Having both is a hint that somewhere in config you have Google/... instead of google/....

Fix: open C:\\Users\\elibl\\.openclaw\\openclaw.json and ...\\agents\\main\\agent\\models.json and make sure any model refs/provider keys use lowercase google/... (not Google/...). Then restart the gateway.

3) What to do depending on what you want

  • If you want to use your Gemini API key (GEMINI_API_KEY): pick one of the google/gemini-* models that show up in openclaw models list --provider google.
  • If you want Gemma 3 specifically: you’ll likely need a provider that actually serves it (commonly OpenRouter). That would look like openrouter/google/gemma-3-27b-it (and then set OPENROUTER_API_KEY / auth profile).

4) Quick “prove it” step (so we’re not guessing)

Right after you try the Gemma model in the web UI and it “hangs”, run:

openclaw logs --limit 200 --plain

and paste the error lines (redact keys). If it’s what I suspect, you’ll see a “model not found/invalid model” type error from the Google endpoint.

crisp goblet
#

Output: PS C:\Users\elibl> openclaw gateway start
9/openclaw/canvas/ (root C:\Users\elibl.openclaw\canvas)
2026-02-06T16:26:14.418Z info gateway/heartbeat {"subsystem":"gateway/heartbeat"} {"intervalMs":1800000} heartbeat: started
2026-02-06T16:26:14.426Z info gateway {"subsystem":"gateway"} agent model: google/gemma-3-27b-it
2026-02-06T16:26:14.429Z info gateway {"subsystem":"gateway"} listening on ws://127.0.0.1:18789 (PID 15516)
2026-02-06T16:26:14.432Z info gateway {"subsystem":"gateway"} listening on ws://[::1]:18789
2026-02-06T16:26:14.436Z info gateway {"subsystem":"gateway"} log file: \tmp\openclaw\openclaw-2026-02-06.log
2026-02-06T16:26:14.462Z info browser/service {"subsystem":"browser/service"} Browser control service ready (profiles=2)
2026-02-06T16:26:14.489Z info cron {"module":"cron","storePath":"C:\Users\elibl\.openclaw\cron\jobs.json"} {"enabled":true,"jobs":4,"nextWakeAtMs":null} cron: started
2026-02-06T16:26:15.082Z info gateway/channels/telegram {"subsystem":"gateway/channels/telegram"} [default] starting provider (@Circuit123Bot)
2026-02-06T16:26:15.096Z info telegram/network {"subsystem":"telegram/network"} telegram: autoSelectFamily=false (default-node22)
2026-02-06T16:26:15.260Z debug skills {"subsystem":"skills"} {"rawName":"skill-creator","sanitized":"/skill_creator"} Sanitized skill command name "skill-creator" to "/skill_creator".
2026-02-06T16:26:15.262Z debug skills {"subsystem":"skills"} {"rawName":"spotify-player","sanitized":"/spotify_player"} Sanitized skill command name "spotify-player" to "/spotify_player".
2026-02-06T16:26:15.265Z debug skills {"subsystem":"skills"} {"rawName":"stock-analysis","sanitized":"/stock_analysis"} Sanitized skill command name "stock-analysis" to "/stock_analysis".
2026-02-06T16:26:15.267Z debug skills {"subsystem":"skills"} {"rawName":"verify-on-browser-1.0.0","sanitized":"/verify_on_browser_1_0_0"} Sanitized skill command name "verify-on-browser-1.0.0" to "/verify_on_browser_1_0_0".
2026-02-06T16:26:15.531Z info bonjour: advertised gateway fqdn=DESKTOP-HQQDD08 (OpenClaw)._openclaw-gw._tcp.local. host=openclaw.local. port=18789 state=announcing
2026-02-06T16:26:41.705Z info gateway/ws {"subsystem":"gateway/ws"} webchat connected conn=c7f4fbf3-fdd8-4c37-860f-554f6ef58354 remote=127.0.0.1 client=openclaw-control-ui webchat vdev
2026-02-06T16:26:44.757Z debug diagnostic {"subsystem":"diagnostic"} lane enqueue: lane=session:agent:main:main queueSize=1
2026-02-06T16:26:44.760Z debug diagnostic {"subsystem":"diagnostic"} lane dequeue: lane=session:agent:main:main waitMs=4 queueSize=0
2026-02-06T16:26:44.762Z debug diagnostic {"subsystem":"diagnostic"} lane enqueue: lane=main queueSize=1
2026-02-06T16:26:44.765Z debug diagnostic {"subsystem":"diagnostic"} lane dequeue: lane=main waitMs=3 queueSize=0
2026-02-06T16:26:44.785Z debug agent/embedded {"subsystem":"agent/embedded"} embedded run start: runId=846ef30b-80d8-4aec-aacb-455d70d2bd44 sessionId=939ec118-cc06-4447-960c-4ef696bdc3c9 provider=google model=gemma-3-27b-it thinking=off messageChannel=webchat
2026-02-06T16:26:45.003Z debug diagnostic {"subsystem":"diagnostic"} session state: sessionId=939ec118-cc06-4447-960c-4ef696bdc3c9 sessionKey=unknown prev=idle new=processing reason="run_started" queueDepth=0
2026-02-06T16:26:45.006Z debug diagnostic {"subsystem":"diagnostic"} run registered: sessionId=939ec118-cc06-4447-960c-4ef696bdc3c9 totalActive=1

ocean frostBOT
# crisp goblet Output: PS C:\Users\elibl> openclaw gateway start 9/__openclaw__/canvas/ (root ...

Nice — this log confirms the UI is talking to the gateway and the run starts:

embedded run start ... provider=google model=gemma-3-27b-it

What’s missing is the next part: the HTTP response (success/error) from Google. Right now you only pasted the startup + “run started” lines, so we can’t see why the UI never gets a completion.

Grab the actual error (2 easy ways)

Option A (recommended): in a second PowerShell window:

openclaw logs --follow --plain

Then send a message in the web UI and copy/paste everything from embedded run start until you see an error or completion.

Option B: tail the logfile directly:

#
Get-Content \tmp\openclaw\openclaw-2026-02-06.log -Tail 200 -Wait

Likely root cause (based on your earlier models list)

Your working Google API-key catalog is the google/gemini-* models.

google/gemma-3-27b-it is not in the real Gemini API model list — it’s only in your Configured models (i.e. allowlisted by config). That means OpenClaw will happily try it, but Google may return a 404/400 like “model not found / not supported”, and the UI looks like it hangs.

So after we confirm via logs, the fix is usually:

  • switch default back to a real Gemini API model like google/gemini-2.5-flash
  • and if you specifically want Gemma 3, use a provider that actually serves it (commonly openrouter/google/gemma-3-27b-it, or run it locally)

Paste the log lines after embedded run start and I’ll tell you exactly which one it is (404 vs auth vs something else).