15:55:56 [agent/cli-backend] cli exec: provider=claude-cli model=sonnet promptChars=143
15:55:56 [process/supervisor] spawn failed: runId=fe6e3f0e-0af5-4f0c-9568-e76780a94a1d reason=Error: spawn ENAMETOOLONG
Setup
OpenClaw on Windows
Config: ~/.openclaw/openclaw.json
Goal
Make agents.defaults.cliBackends["claude-cli"].systemPromptWhen = "never" persist and work.
Observed behavior
Adding agents.defaults.cliBackends.claude-cli initially validated.
After gateway reload/restart attempts, OpenClaw restored openclaw.json from backup with reload-invalid-config.
The setting disappeared again from the active config.
openclaw config get agents.defaults.cliBackends.claude-cli now returns Config path not found.
Relevant config
agents.defaults.cliBackends["claude-cli"] = { "systemPromptWhen": "never" }
Errors
Config recovery warning: OpenClaw restored openclaw.json from the last-known-good backup during reload (reload-invalid-config).
Config path not found: agents.defaults.cliBackends.claude-cli
Ask
Why is the valid cliBackends.claude-cli entry being dropped on reload?
Is there a schema or runtime mismatch causing config recovery to remove it?
What is the supported way to persist this Claude CLI setting?