Back to Issue home

agent setup

#agent-setup

Sorted by views, then solution_desc, solution, and root_cause length (desc).

2693 issues

[Bug]: Interactive onboard fails on Windows with ERR_UNSUPPORTED_ESM_URL_SCHEME after model selection

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)

[Bug]: SafeOpenERROR after setting up QMD memory for multi-agent setup

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