#Unable to use OpenClaw in Windows 11

1 messages · Page 1 of 1 (latest)

tough stump
#

I have set it up. Started gateway. I am using OpenRouter model. But when trying to send any message via WebUI, I get below error. Tried using sending message directly to model using infer - same issue

agent/embedded {"subsystem":"agent/embedded"} incomplete turn detected: runId=8e119892-5021-4d95-b04e-2118537481dd sessionId=a50e4592-31fc-47e7-aa9f-fd46df585b1d stopReason=stop payloads=0 — surfacing error to user

$ openclaw infer model run --model openrouter/openai/gpt-oss-120b:free --prompt "hi" --json
22:33:17 [agent/embedded] incomplete turn detected: runId=a50e4592-31fc-47e7-aa9f-fd46df585b1d sessionId=a50e4592-31fc-47e7-aa9f-fd46df585b1d stopReason=stop payloads=0 — surfacing error to user
{
"ok": true,
"capability": "model.run",
"transport": "local",
"provider": "openrouter",
"model": "openai/gpt-oss-120b:free",
"attempts": [],
"outputs": [
{
"text": "⚠️ Agent couldn't generate a response. Please try again.",
"mediaUrl": null
}
]
}

I tried running bash as well as powershell in admin mode, tried adding node.js as allowed application in Windows Firewall, tried disabling firewall temporarily - none of this helped.
How can I get this working please?

harsh zephyrBOT
#

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

ivory reefBOT
primal troutBOT
#

Let me check the exact docs path and the error in source, then I’ll give you a concrete fix path.

#

That probably is not Windows Firewall.

Reason: openclaw infer model run uses the normal local path and does not require the gateway (https://docs.openclaw.ai/cli/infer). So if both WebUI and infer fail, the problem is lower in the model/provider response path, not the browser/UI.

The important clue is this:

stopReason=stop payloads=0

That means OpenClaw got a clean stop with no visible text back, so it surfaced the generic fallback.

Please check these, in this order:

  1. openclaw --version
    Very important, there was a recent fix for empty / reasoning-only GPT-style turns in 2026.4.12.

  2. openclaw status --all

#
  1. openclaw models status

  2. In one terminal:
    openclaw logs --follow

  3. In another terminal, rerun with a simpler OpenRouter route:
    openclaw infer model run --model openrouter/auto --prompt "Reply with exactly: smoke-ok" --json

If openrouter/auto works, but openrouter/openai/gpt-oss-120b:free fails, then it’s very likely that specific OpenRouter route/model returning an empty completion, not your Windows setup.

If both fail, paste these here:

  • openclaw --version
  • openclaw models status
  • the relevant lines from openclaw logs --follow
  • optionally openclaw doctor
tough stump
#

$ openclaw --version
OpenClaw 2026.4.15 (041266a)

$ openclaw models status

🦞 OpenClaw 2026.4.15 (041266a) — I'll do the boring stuff while you dramatically stare at the logs like it's cinema.

Config : ~.openclaw\openclaw.json
Agent dir : ~.openclaw\agents\main\agent
Default : openrouter/openai/gpt-oss-120b:free
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (1) : OpenRouter -> openrouter/auto
Configured models (2): openrouter/auto, openrouter/openai/gpt-oss-120b:free

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...e98edd50

OAuth/token status

  • none
#

running the infor and logs now

#

$ openclaw infer model run --model openrouter/auto --prompt "Reply with exactly: smoke-ok" --json
22:52:20 [agent/embedded] incomplete turn detected: runId=a50e4592-31fc-47e7-aa9f-fd46df585b1d sessionId=a50e4592-31fc-47e7-aa9f-fd46df585b1d stopReason=stop payloads=0 — surfacing error to user
{
"ok": true,
"capability": "model.run",
"transport": "local",
"provider": "openrouter",
"model": "openrouter/auto",
"attempts": [],
"outputs": [
{
"text": "⚠️ Agent couldn't generate a response. Please try again.",
"mediaUrl": null
}
]
}

#

10:52:20+00:00 warn agent/embedded {"subsystem":"agent/embedded"} incomplete turn detected: runId=a50e4592-31fc-47e7-aa9f-fd46df585b1d sessionId=a50e4592-31fc-47e7-aa9f-fd46df585b1d stopReason=stop payloads=0 — surfacing error to user

primal troutBOT
#

Yep, this helps a lot.

Your version is current, and your auth looks fine. Shell env: off is not the problem here, because OpenClaw is clearly using the saved OpenRouter API-key profile.

I also do not think this is a Windows / firewall issue anymore.

This matches a current OpenRouter empty-response regression pretty closely: OpenClaw gets a clean stop, but no assistant content (stopReason=stop, payloads=0), then shows the generic fallback.

Very similar reports:

So at this point I’d recommend:

  1. If you need it working now, switch off OpenRouter temporarily and use another provider.
#
  1. If you want to help get it fixed, comment on one of those GitHub issues with your exact repro:
    • Windows 11
    • OpenClaw 2026.4.15
    • model openrouter/openai/gpt-oss-120b:free
    • openclaw infer model run ... fails the same way

Optional quick sanity check:

openclaw infer model run --model openrouter/auto --prompt "Reply with exactly: smoke-ok" --json

If that fails too, it reinforces that this is the same OpenRouter bug, not your local setup.

So, short version: your setup looks basically correct, this looks like a real OpenClaw/OpenRouter bug. If you paste the openrouter/auto result, I can help confirm whether it’s all OpenRouter routes or just that one.

#

Perfect, thank you.

The 2 most useful things will be:

  1. the openrouter/auto result
  2. the few log lines immediately after the failed infer run

If the logs show the same pattern, stopReason=stop with no content / zero output, that’s basically the smoking gun for the OpenRouter bug.

Paste them when ready, I’ll read through them with you.

tough stump
#

openrouter/auto fails with same issue:

#

$ openclaw infer model run --model openrouter/auto --prompt "Reply with exactly: smoke-ok" --json
22:52:20 [agent/embedded] incomplete turn detected: runId=a50e4592-31fc-47e7-aa9f-fd46df585b1d sessionId=a50e4592-31fc-47e7-aa9f-fd46df585b1d stopReason=stop payloads=0 — surfacing error to user
{
"ok": true,
"capability": "model.run",
"transport": "local",
"provider": "openrouter",
"model": "openrouter/auto",
"attempts": [],
"outputs": [
{
"text": "⚠️ Agent couldn't generate a response. Please try again.",
"mediaUrl": null
}
]
}

#

and logs just shows this

#

10:52:20+00:00 warn agent/embedded {"subsystem":"agent/embedded"} incomplete turn detected: runId=a50e4592-31fc-47e7-aa9f-fd46df585b1d sessionId=a50e4592-31fc-47e7-aa9f-fd46df585b1d stopReason=stop payloads=0 — surfacing error to user

primal troutBOT
#

That confirms it, this is not model-specific. It’s failing for all OpenRouter routes on your install.

One last concrete check, because there was a recent models.json bug around OpenRouter URLs:

Please open:

~\.openclaw\agents\main\agent\models.json

and look for the openrouter provider block.

The base URL should be exactly:

https://openrouter.ai/api/v1

If you see this instead:

#
https://openrouter.ai/v1

that’s broken. Change it to https://openrouter.ai/api/v1, save, then retry the same infer command.

If you want, you can just paste the openrouter block here and I’ll check it.

If the base URL is already correct, then I’m pretty comfortable calling this the current OpenRouter regression, in which case the practical options are:

  1. switch to another provider for now, or
  2. comment on the matching GitHub issue with your repro

If you already have the logs running, paste those too, but the models.json check is the fastest next step.

#

Yep, that log line is just the final symptom, it doesn’t show the underlying OpenRouter config.

The most useful next check is still this:

(Get-Content "$HOME\.openclaw\agents\main\agent\models.json" -Raw | ConvertFrom-Json).providers.openrouter | Format-List *

Please paste that output.

I mainly want to see whether baseUrl is:

https://openrouter.ai/api/v1

If it’s https://openrouter.ai/v1, that’s the bug. If it’s already /api/v1, then we can stop blaming config and treat this as the current OpenRouter regression.

#

Yep, that confirms it, all OpenRouter routes are failing, not just gpt-oss-120b:free.

So I would stop chasing Windows/network stuff. I really don’t think firewall/admin mode is the problem.

At this point you have 2 sensible paths:

  1. Fastest way to get unstuck, recommended:
    switch to a different provider for now.

  2. Keep debugging OpenRouter:
    paste the output of this so I can check the stored OpenRouter provider config:

    (Get-Content "$HOME\.openclaw\agents\main\agent\models.json" -Raw | ConvertFrom-Json).providers.openrouter | Format-List *
    

If that baseUrl is wrong, we may have a local fix. If it’s already correct, then this is almost certainly the tracked OpenRouter regression, and I’d comment on one of these issues with your repro:

#

Thanks, that’s the clincher.

Since both:

  • openrouter/openai/gpt-oss-120b:free
  • openrouter/auto

fail with the same stopReason=stop, payloads=0 result, I think we have enough to stop blaming your Windows setup.

My read now is:

  • your auth looks fine
  • your OpenClaw install is current
  • this is very likely the current OpenRouter regression, not something you misconfigured locally

So my recommendation is:

#
  1. Use another provider for now, if you want OpenClaw working today.
  2. Comment on this GitHub issue with your exact repro, since it’s a very strong match:
    https://github.com/openclaw/openclaw/issues/67646

Include:

  • Windows 11
  • OpenClaw 2026.4.15
  • openrouter/openai/gpt-oss-120b:free fails
  • openrouter/auto also fails
  • openclaw infer model run ... --json reproduces locally, not just in WebUI

I don’t think more firewall/admin-shell tweaking is worth your time here.

If you want, I can help you switch to a temporary non-OpenRouter provider config next.

tough stump
#

$ openclaw infer model run --model openrouter/auto --prompt "Reply with exactly: smoke-ok" --json
{
"ok": true,
"capability": "model.run",
"transport": "local",
"provider": "openrouter",
"model": "openrouter/auto",
"attempts": [],
"outputs": [
{
"text": "The HEARTBEAT.md file is empty, so there are no periodic tasks to perform.\n\nHello! I'm your AI assistant. I'm here to help you with your tasks. What would you like to do today?",
"mediaUrl": null
}
]
}

primal troutBOT
#

Yep, that fits the bug report even more.

If this were firewall/auth/network, I’d expect a more specific lower-level provider error. Instead you’re only getting the same top-level incomplete turn detected warning every time.

So I’d stop digging on the Windows side. I think you’ve already proven the important part:

  • WebUI fails
  • infer fails
  • openrouter/auto fails too
  • logs add nothing except the same empty-turn warning

That’s enough for me to call this an OpenRouter/OpenClaw bug, not a local setup mistake.

So the practical next move is:

  1. switch provider for now, or
  2. comment on https://github.com/openclaw/openclaw/issues/67646
#

If you want, tell me which other provider you have access to (OpenAI, Anthropic, etc.), and I’ll suggest the quickest temporary switch path.

#

Yep, same exact symptom again, no extra clue there.

I think we’re at diminishing returns on this thread. You’ve already gathered enough to show it’s not your Windows setup.

My recommendation stays:

If you want to keep moving today, tell me which provider you can use instead, and I’ll give you the quickest switch steps.

#

Nice, that sounds like we caught it 🎉

Yep, https://openrouter.ai/v1 is the broken one.
The correct OpenRouter base URL is:

https://openrouter.ai/api/v1

So this was not your firewall / admin shell / Windows setup after all.

Next steps:

  1. confirm infer works now
  2. test the WebUI again
  3. if WebUI still looks stale, restart the gateway once
#

If this fixed it, please right-click the solution message → Apps → ✅ Mark Solution.
That helps Answer Overflow index it for the next person who hits the same thing.

tough stump
#

changing models.json file with correct baseUrl seems to have resolved the issue and now I get responses in both infer and webUI. This is resolved I shall mark as Solved

primal troutBOT
#

Nice, that’s a good sign.

The reply is a bit weird, but the important part is this: it returned text at all, which means the OpenRouter path is working now. So the broken base URL was the real issue.

A couple quick notes:

  • openclaw infer model run uses the agent runtime, not a raw “echo exactly this string” API call, so the fact it didn’t say exactly smoke-ok is less important than the fact it responded successfully.
  • The real fix was changing:
    • https://openrouter.ai/v1 ❌
    • to https://openrouter.ai/api/v1 âś…

I’d do these next:

  1. retry your original model
  2. test the WebUI again
  3. if WebUI still has stale state, restart the gateway once
#

If this fixed it, please right-click the solution message → Apps → ✅ Mark Solution so Answer Overflow can index it for future users.

#

Awesome, glad we found it 🎉

So the fix was:

  • open ~\.openclaw\agents\main\agent\models.json
  • change OpenRouter baseUrl from:
    • https://openrouter.ai/v1
  • to:
    • https://openrouter.ai/api/v1

That explains why both infer and WebUI were failing.

Thanks for confirming, and yep, marking it solved will help the next person a lot.