17:33:06 [agent/embedded] incomplete turn detected: runId=954fe449-bf4d-4fa0-8a14-8e895bc7ec53 sessionId=46d1f0a8-201c-4462-b159-b0de5e1ef907 stopReason=stop payloads=0 β surfacing error to user
17:37:34 [agent/embedded] incomplete turn detected: runId=9f2dfc16-8c4c-442b-93cc-c74b8269396e sessionId=46d1f0a8-201c-4462-b159-b0de5e1ef907 stopReason=stop payloads=0 β surfacing error to user
#help
1 messages Β· Page 1 of 1 (latest)
That line is a symptom, not the root cause.
stopReason=stop + payloads=0 means the embedded run finished without any user-visible reply. In practice that usually means one of these:
- the model returned an empty response
- it returned reasoning/internal-only output but no final answer
- upstream hit a rate limit / overload / context issue and the turn collapsed before reply
A normal tool-call stall is usually stopReason=toolUse, so this one points more at an empty/hidden final turn.
Please paste these:
openclaw --version
openclaw status --all
openclaw models status
Then run:
openclaw logs --follow
and trigger it once more. In the logs, look for lines right before the incomplete turn detected one, especially:
reasoning-only assistant turn detectedempty response detectedrate limitoverloadedcontext overflow
If you're using OpenAI / GPT-style models, there was a recent fix for exactly these reasoning-only / empty embedded turns, so if you're on an older build I'd upgrade first.
If you're using a local OpenAI-compatible backend (Ollama, LM Studio, llama.cpp, etc.), tell me the exact backend + model too, because those are a very common cause of empty-response turns.
Diagnosis (read-only)
Gateway connection details:
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /root/.openclaw/openclaw.json
Bind: loopback
β Config: /root/.openclaw/openclaw.json
β Secret diagnostics (0)
β Restart sentinel: none
! Port 18789
Port 18789 is already in use.
- pid 9778 root: openclaw-gateway (127.0.0.1:18789)
- Gateway already running locally. Stop it (openclaw gateway stop) or use a different port.
! Tailscale: off Β· unknown
β Skills: 7 eligible Β· 0 missing Β· /root/.openclaw/workspace
β Plugin compatibility (none)
β Channel issues (none)
Pasteable debug report. Auth tokens redacted.
Troubleshooting: https://docs.openclaw.ai/troubleshooting
β
π¦ OpenClaw 2026.4.15 (041266a) β I'm the middleware between your ambition and your attention span.
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : openrouter/deepseek/deepseek-v3.2
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (1) : OpenRouter -> openrouter/auto
Configured models (2): openrouter/auto, openrouter/deepseek/deepseek-v3.2
Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -
- openrouter effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | openrouter:default=sk-or-v1...4f10cb48
OAuth/token status
- none
root@ubuntu:~#
Nice, this narrows it down a lot.
A few important takeaways from that report:
- Gateway looks up/alive
- 2026.4.15 is new enough that the recent empty/reasoning-only turn recovery fixes are already in
Port 18789 is already in usejust means your gateway is already running, not that it failed
So this no longer looks like a gateway/startup issue.
The most suspicious part is now the model path: openrouter/deepseek/deepseek-v3.2 with no fallbacks.
Iβd test it in this order:
openclaw models status --probe
openclaw infer model run --model openrouter/deepseek/deepseek-v3.2 --prompt "Reply with exactly: OK" --json
Then also:
openclaw logs --follow
and trigger one failing chat turn. The lines right before incomplete turn detected matter most.
What Iβd expect:
- if
infer model runalso fails, itβs basically a provider/model issue - if
infer model runworks but chat still fails, the model is probably choking on the full agent prompt/tool context - if a fresh session works but the current one doesnβt, it may be session/context related, so try
/new
Honestly, DeepSeek via OpenRouter would be my prime suspect here, not the gateway.
If you want the fastest unblock, Iβd temporarily switch to a more tool-reliable model, or at least add a fallback, then compare behavior.
If you paste:
openclaw models status --probe- the output of that
infer model run - ~20 log lines before the failure
I can help pinpoint whether this is OpenRouter, the model, or agent/tool prompt pressure.
Docs:
π¦ OpenClaw 2026.4.15 (041266a) β Finally, a use for that always-on Mac Mini under your desk.
β
β
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : openrouter/deepseek/deepseek-v3.2
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (1) : OpenRouter -> openrouter/auto
Configured models (2): openrouter/auto, openrouter/deepseek/deepseek-v3.2
Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -
- openrouter effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | openrouter:default=sk-or-v1...4f10cb48
OAuth/token status
- none
Auth probes
βββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββ¬βββββββββββββ
β Model β Profile β Status β
βββββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββΌβββββββββββββ€
β openrouter/deepseek/deepseek-v3.2 β openrouter:default (api_key) β ok Β· 11.3s β
βββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββ΄βββββββββββββ
Probed 1 target in 17.8s
17:48:06 [agent/embedded] incomplete turn detected: runId=46d1f0a8-201c-4462-b159-b0de5e1ef907 sessionId=46d1f0a8-201c-4462-b159-b0de5e1ef907 stopReason=stop payloads=0 β surfacing error to user
{
"ok": true,
"capability": "model.run",
"transport": "local",
"provider": "openrouter",
"model": "deepseek/deepseek-v3.2",
"attempts": [],
"outputs": [
{
"text": "β οΈ Agent couldn't generate a response. Please try again.",
"mediaUrl": null
}
]
}
root@ubuntu:~#
Yep, this basically pins it down.
Your setup is authing and reaching the model fine:
models status --probe= ok- but a trivial
infer model runon the same model still returns:
β οΈ Agent couldn't generate a response
So the failure is not:
- gateway startup
- Discord delivery
- session history
- tool calling
Itβs lower-level than that: that model route is ending cleanly but not producing usable text.
So at this point Iβd treat openrouter/deepseek/deepseek-v3.2 as the problem.
Fastest unblock
Temporarily switch off that model and test another one.
Since you already have openrouter/auto configured, easiest test is:
openclaw models set openrouter/auto
openclaw infer model run --model openrouter/auto --prompt "Reply with exactly: OK" --json
If that works, youβve confirmed itβs specific to the DeepSeek V3.2 OpenRouter route, not OpenClaw itself.
What this means
models status --probe only proves auth + route reachability.
It does not prove the model will return a valid final answer for normal inference.
Your repro now is strong enough to say:
OpenClaw can reach/auth OpenRouter DeepSeek V3.2, but actual inference returns an empty/incomplete final turn.
What Iβd do next
- Use another primary model for now
- Add a fallback so the bot doesnβt hard-fail on this route
- If you want to help get it fixed, file a GitHub issue with exactly these two outputs:
openclaw models status --probeopenclaw infer model run --model openrouter/deepseek/deepseek-v3.2 --prompt "Reply with exactly: OK" --json
Issue tracker:
https://github.com/openclaw/openclaw/issues