#DeepSeek and Gemini 2.0 Flash return only empty chat bubbles
1 messages · Page 1 of 1 (latest)
Empty Discord bubbles usually means OpenClaw sent a placeholder message, but the model run ended up producing no user-facing text (often due to a provider streaming/response-parsing quirk). To narrow it down quickly, can you grab these from the gateway host/container?
- Version + health snapshot
openclaw --version
openclaw status --all
openclaw models status
- Reproduce while tailing logs
openclaw logs --follow
Send a simple prompt like “say ok” in Discord, then paste the log lines around that run (you can truncate; tokens should already be redacted by status --all).
Notes for Coolify: the “no errors in logs” part is often just because you’re only seeing container stdout—OpenClaw’s primary log is usually in /tmp/openclaw/openclaw-YYYY-MM-DD.log and openclaw logs --follow is the easiest way to read it. Docs: https://docs.openclaw.ai/logging
Two fast sanity checks / workarounds
A) If you’re using “Gemini 2.0 Flash”
The docs explicitly recommend avoiding older Gemini 2.x models for reliability; try switching to a Gemini 3 model (e.g. /model gemini-flash) and see if the problem disappears. Docs: https://docs.openclaw.ai/help/faq#how-do-i-switch-models-on-the-fly-without-restarting
B) If the logs show anything like “ended without sending any chunks” / “empty stream”
A practical workaround is to disable streaming for the specific model (some OpenAI-compatible providers occasionally return an empty SSE stream, which can leave you with a blank placeholder message).
If you paste the exact model refs from openclaw models status (the full provider/model strings), I’ll show you the exact JSON5 snippet to add. (It’s per-model: set streaming: false under agents.defaults.models["<provider/model>"].)
Reply with:
openclaw --version- the two model refs that produce blank bubbles (exact strings)
- a small log excerpt from
openclaw logs --followduring one blank reply
…and we can pin down whether this is (1) provider response format, (2) empty-stream streaming, or (3) a specific OpenClaw version bug.
I’m here.
For the “empty chat bubble” symptom, the fastest way to debug is: confirm version + capture the model run log around one blank reply.
Please paste (from the VPS / Coolify container), no keys:
openclaw --version
openclaw status --all
openclaw models status
openclaw logs --follow
Then reproduce once (send “say ok” in Discord) and paste the few log lines from openclaw logs --follow around that run.
Two quick checks while you’re at it:
- If you’re actually using Gemini 2.x Flash, try switching to Gemini 3 Flash (Gemini 2.x is known to be flaky in practice):
/model gemini-flash(should map togoogle/gemini-3-flash-previewif configured)
- For DeepSeek: which provider are you using (
openrouter/...,huggingface/...,together/..., etc.)? The exactprovider/modelstring fromopenclaw models statusmatters.
Once I see the version + the log snippet, I can tell if this is an “empty stream / streaming parsing” issue (common) vs something else, and give the exact fix.
Now I see these logs in openclawn.
lane task error: lane=main durationMs=56 error="Error: Unknown model: gemini/gemini-1.5-flash"
lane task error: lane=session:agent:main:main durationMs=60 error="Error: Unknown model: gemini/gemini-1.5-flash"
Embedded agent failed before reply: Unknown model: gemini/gemini-1.5-flash
Embedded agent failed before reply: Unknown model: gemini/gemini-1.5-flash
And in the openclaw UI chat seems to be "stuck" in the writing phase.
Can you paste the log lines (or a screenshot) you’re seeing? Right now I only see “Now I see these logs…” but not the actual snippet.
What I need is ~20–60 lines around one blank-bubble reply, ideally including:
- the model/provider it picked (e.g.
google/...,openrouter/...,huggingface/...) - any error like “request ended without sending any chunks”, “empty stream”, timeout, 429, etc.
- the run/session id if shown
If you’re in the Control UI Logs tab, just copy/paste the chunk. If you’re on the VPS, this is even better:
openclaw --version
openclaw logs --follow
Reproduce once (“say ok”), then paste what openclaw logs --follow printed for that run.
Also: confirm the exact model strings you’re using for “DeepSeek” and “Gemini 2.0 Flash” (from openclaw models status). The fix depends heavily on whether those are google/... Gemini API models vs OpenRouter/HF/etc.
Those logs are the smoking gun:
Error: Unknown model: gemini/gemini-1.5-flash
So the “empty bubble” is happening because the agent run fails before it can produce any text, and Discord ends up showing a blank/placeholder reply while the run dies.
Fix: use the correct provider prefix (and pick from the discovered list)
In OpenClaw, Gemini (API key) is provider google, not gemini.
- On the VPS/container, list what OpenClaw actually knows about:
openclaw models list | rg -i gemini
openclaw models status
- In chat, switch to a known-good Gemini model via the picker:
- send:
/model
- or:
/model list - then pick a Gemini entry from the list (you’ll typically see something like
google/...)
- If you want to set it in config, set your default model to a real discovered id, e.g. (example):
{
agents: {
defaults: {
model: { primary: "google/gemini-3-flash-preview" }
}
}
}
- Restart the gateway after changing config: