#agent-setup
Sorted by views, then solution_desc, solution, and root_cause length (desc).
2693 issues
On Windows, running OpenClaw onboarding in interactive mode crashes with: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:' Environment: OS: Windows OpenClaw: 2026.4.5 (3e72c03) Node: v24.14.0 Install location: AppData/Roaming/npm/node_modules/openclaw Config path: [openclaw.json](vscode-file://vscode-app/c:/Program%20Files/Microsoft%20VS%20Code/e7fb5e96c0/resources/app/out/vs/code/electron-browser/workbench/workbench.html) **What I already verified:** This is not fixed by changing normal Windows file paths inside [openclaw.json](vscode-file://vscode-app/c:/Program%20Files/Microsoft%20VS%20Code/e7fb5e96c0/resources/app/out/vs/code/electron-browser/workbench/workbench.html) Non-interactive onboarding works on the same machine: openclaw onboard --non-interactive --accept-risk --mode local --flow quickstart --auth-choice skip --skip-channels --skip-skills --skip-search --skip-health --skip-ui So this appears specific to the interactive path (model/provider/plugin flow), not general config write/read Relevant logs: The same error is recorded in [openclaw-2026-04-06.log](vscode-file://vscode-app/c:/Program%20Files/Microsoft%20VS%20Code/e7fb5e96c0/resources/app/out/vs/code/electron-browser/workbench/workbench.html) Repeated entries show: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME] ... Received protocol 'c:' Possible root cause: A dynamic import in the interactive onboarding/provider model flow appears to pass a raw Windows absolute path instead of converting to a file:// URL (for example via pathToFileURL). Impact: Windows users can be blocked from interactive onboarding and must use non-interactive workaround. [openclaw-2026-04-06.log](https://github.com/user-attachments/files/26505757/openclaw-2026-04-06.log) [openclaw-2026-04-04.log](https://github.com/user-attachments/files/26505769/openclaw-2026-04-04.log)
I encountered multiple issues while setting up OpenClaw on Windows using the QuickStart flow with Ollama. After completing onboarding and restarting the gateway service, the health check fails with a WebSocket error. Additionally, the embedded agent fails due to a timeout when using the default Ollama model.
When the primary model (OpenAI Codex / ChatGPT Plus OAuth) hits the ChatGPT Plus subscription usage cap, OpenClaw: 1. **Surfaces the error to the UI** even when a fallback model (Anthropic) successfully handles the request 2. **Labels the error as "API rate limit reached"** — misleading when on OAuth (not an API key). The actual failure is a ChatGPT Plus plan usage cap, which is a different condition entirely. 3. **Triggers a WebSocket auth lockout loop** when the user attempts reconnect after a gateway restart, compounding the perceived outage.
After updating from 2026.3.22 (also reproduced on 2026.3.23, 2026.3.24, 2026.3.31), the main agent intermittently enters a broken state: - It sends an acknowledgement like “I’ll do it now” - Then actual execution does not proceed (or appears stuck/misaligned) - Once this state appears, it does **not** recover by creating a new session - Gateway restart may temporarily recover once, but issue returns quickly - Only downgrading to an older version reliably recovers behavior This is a high-impact regression because user-visible intent/response and actual execution diverge.
After upgrading to OpenClaw 2026.4.1 (da64a97), the boot-md plugin injects the same workspace file (e.g. memory/YYYY-MM-DD.md mapped as DAILY.md) 3–5× per message instead of once. Each injection appears as a separate truncation warning in the session bootstrap output. Consuming ~2% extra context budget per occurrence
After configuring the QMD memory engine for a multi‑agent setup, any operation that runs the **QMD boot/update pipeline via OpenClaw** fails with: - `qmd boot update failed: SafeOpenError: path is not a regular file under root` - `Memory index failed (<agentId>): path is not a regular file under root` At the same time, QMD works correctly when run **directly** with the documented XDG paths, and `openclaw memory status` reports a valid index under the expected per‑agent state directory. For example, `openclaw memory status` for one agent: ```text Memory Search (assistant) Provider: qmd (requested: qmd) Model: qmd Sources: memory, sessions Indexed: 13/19 files · 13 chunks Dirty: no Store: ~/.openclaw/agents/assistant/qmd/xdg-cache/qmd/index.sqlite Workspace: ~/.openclaw/workspace/assistant By source: memory · 13/13 files · 13 chunks sessions · 0/6 files · 0 chunks Vector: ready Batch: disabled (failures 0/0) ``` This `Store:` path lives under the documented per‑agent state directory (`~/.openclaw/agents/<agentId>/qmd/…`) and I don’t think it should trigger `SafeOpenError`. However, when I run `openclaw memory index --force --verbose`, or when the cron job runs the memory indexer, I consistently get: ```text 🦞 OpenClaw 2026.3.28 (f9b1079) Claws out, commit in—let's ship something mildly responsible. Memory Index (main) Provider: qmd (requested: qmd) Model: qmd Sources: memory (MEMORY.md + ~/.openclaw/workspace/memory/*.md), sessions (~/.openclaw/agents/main/sessions/*.jsonl) 19:39:09+00:00 [memory] qmd boot update failed: SafeOpenError: path is not a regular file under root Memory index failed (main): path is not a regular file under root Memory Index (assistant-1) Provider: qmd (requested: qmd) Model: qmd Sources: memory (MEMORY.md + ~/.openclaw/workspace/assistant-1/memory/*.md), sessions (~/.openclaw/agents/assistant-1/sessions/*.jsonl) 19:39:10+00:00 [memory] qmd boot update failed: SafeOpenError: path is not a regular file under root Memory index failed (assistant-1): path is not a regular file under root Memory Index (assistant-2) Provider: qmd (requested: qmd) Model: qmd Sources: memory (MEMORY.md + ~/.openclaw/workspace/assistant-2/memory/*.md), sessions (~/.openclaw/agents/assistant-2/sessions/*.jsonl) 19:39:10+00:00 [memory] qmd boot update failed: SafeOpenError: path is not a regular file under root Memory index failed (assistant-2): path is not a regular file under root ``` In contrast, running QMD directly inside the same container with the documented env vars works and **does not** raise `SafeOpenError`, for example: ```bash STATE_DIR="${OPENCLAW_STATE_DIR:-$HOME/.openclaw}" export XDG_CONFIG_HOME="$STATE_DIR/agents/assistant/qmd/xdg-config" export XDG_CACHE_HOME="$STATE_DIR/agents/assistant/qmd/xdg-cache" qmd update && qmd embed && qmd status # → succeeds, uses ~/.openclaw/agents/assistant/qmd/xdg-cache/qmd/index.sqlite ``` So the bug appears to be that **OpenClaw’s memory indexer / cron wrapper is invoking QMD with a different (or mismatched) “root” for the safe‑open check than the one that works when QMD is run directly with the documented XDG paths.**
OpenClaw 2026.3.8 (3caab92) Setup Mac node host via SSH tunnel to local gateway Worker: 127.0.0.1:18791 → Gateway: 127.0.0.1:18789 Confirmed - tunnel works (nc -vz 127.0.0.1 18791 succeeds) - worker node service runs - worker has ~/.openclaw/identity/device.json - worker never creates ~/.openclaw/identity/device-auth.json Gateway behavior gateway logs show: device pairing auto-approved device=df72580fdf4e6ddf4a8635f50ecc2c23870a247ab1e0608feef328e4be1be34c role=node Node runtime state: Known: 1 · Paired: 0 · Connected: 1 Research Node ... unpaired · connected Device store: openclaw devices list --json { "pending": [], "paired": [ { "nodeId": "cb91b74b0afad0605fb8725ec991d86cccd24b3e059a73966a902778e19a8156" } ] } So the node reaches the runtime registry but never enters the persistent device pairing store and never writes device-auth.json. Question Why does WS node pairing auto-approve at runtime but never persist to devices pending/paired or create device-auth.json on the worker? 'Known: 1 · Paired: 0 · Connected: 1 Research Node ... unpaired · connected'
The `langchain-huggingface` README only shows: ```bash pip install langchain-huggingface ``` But `sentence-transformers` is an **optional dependency** (under `[full]` extra, requiring `>=5.2.0`). Users who follow the README and try to use `HuggingFaceEmbeddings` hit an `ImportError` at runtime with no guidance on how to fix it.