openclaw - 💡(How to fix) Fix [Bug]: SafeOpenERROR after setting up QMD memory for multi-agent setup [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#59229Fetched 2026-04-08 02:27:10
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Author
Participants
Timeline (top)
labeled ×2

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:

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:

🦞 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:

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.

Error Message

🦞 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

Root Cause

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:

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:

🦞 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:

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.

Code Example

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)

---

🦞 OpenClaw 2026.3.28 (f9b1079)
   Claws out, commit inlet'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

---

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

---

# openclaw memory status (assistant)
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)

# openclaw memory index --force --verbose
🦞 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

# Cron log snippet
19:23:31+00:00 debug cron {"module":"cron","storePath":"/home/node/.openclaw/cron/jobs.json"} {"nextAt":1775077200000,"delayMs":60000,"clamped":true} cron: timer armed
19:23:34+00:00 warn memory {"subsystem":"memory"} qmd update failed (SafeOpenError: path is not a regular file under root)
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

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:

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:

🦞 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:

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.

Steps to reproduce

  1. Environment:

    • Docker-based deployment
    • OpenClaw 2026.3.28 Docker image
    • Inside container: HOME=/home/node, STATE_DIR=/home/node/.openclaw
    • Multi-agent setup with agents: main, assistant, assistant-1, assistant-2 (names representative)
    • ~/.openclaw/openclaw.json contains: { "memory": { "backend": "qmd", "qmd": { "sessions": { "enabled": true } } }, "agents": { "list": [ { "id": "main", ... }, { "id": "assistant", ... }, { "id": "assistant-1", ... }, { "id": "assistant-2", ... } ] } // no per-agent memory overrides, no tools.fs.allow }
  2. Start the gateway via Docker: docker compose up -d docker compose logs -f openclaw-gateway

  3. Observe that openclaw memory status works and shows a valid QMD store, for example: 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)

  4. Run QMD directly inside the same container (for one agent) with the documented XDG env vars: docker compose exec openclaw-gateway sh -lc ' 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 '

  5. Observe:

    • qmd update succeeds
    • qmd embed succeeds
    • qmd status uses ~/.openclaw/agents/assistant/qmd/xdg-cache/qmd/index.sqlite
    • No SafeOpenError is raised
  6. Now run the OpenClaw memory indexer: openclaw memory index --force --verbose

  7. Observe that for each agent (main, assistant, assistant-1, assistant-2) the indexer logs: [memory] 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

  8. Also observe the cron job attempting to run the QMD update: 19:23:31+00:00 debug cron {"module":"cron","storePath":"/home/node/.openclaw/cron/jobs.json"} {"nextAt":...,"delayMs":60000,"clamped":true} cron: timer armed 19:23:34+00:00 warn memory {"subsystem":"memory"} qmd update failed (SafeOpenError: path is not a regular file under root)

  9. Note: the error only appears when QMD is driven through OpenClaw’s memory index/cron integration. Running QMD directly with the same per-agent state directory does not trigger it.

Expected behavior

  • OpenClaw’s memory indexer (openclaw memory index) and cron-based QMD updates should reuse the same effective QMD configuration that works when QMD is run directly with the documented XDG env vars.
  • For each agent, QMD boot/update should succeed using the per-agent state directory under: ~/.openclaw/agents/<agentId>/qmd/xdg-cache/qmd/index.sqlite
  • No SafeOpenError should be raised as long as the target paths are regular files under the expected per-agent state root.

Actual behavior

  • QMD works when I run it directly inside the container with the documented XDG_CONFIG_HOME/XDG_CACHE_HOME pointing at ~/.openclaw/agents/<agentId>/qmd/...
  • openclaw memory status also works and reports a valid QMD index under ~/.openclaw/agents/<agentId>/qmd/xdg-cache/qmd/index.sqlite.
  • But any OpenClaw operation that drives QMD (memory index, cron job) fails with: [memory] 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
  • This happens for every agent (main and multiple assistants) whenever openclaw memory index or the QMD cron update runs.

OpenClaw version

2026.3.28

Operating system

Debian GNU/Linux 12 (bookworm)

Install method

npm global inside docker

Model

deepseek-chat

Provider / routing chain

openclaw -> deepseek

Additional provider/model setup details

No response

Logs, screenshots, and evidence

# openclaw memory status (assistant)
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)

# openclaw memory index --force --verbose
🦞 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

# Cron log snippet
19:23:31+00:00 debug cron {"module":"cron","storePath":"/home/node/.openclaw/cron/jobs.json"} {"nextAt":1775077200000,"delayMs":60000,"clamped":true} cron: timer armed
19:23:34+00:00 warn memory {"subsystem":"memory"} qmd update failed (SafeOpenError: path is not a regular file under root)

Impact and severity

Affected:

  • Multi-agent OpenClaw deployments that enable the QMD memory backend and rely on the built-in memory indexing/cron behavior.

Severity:

  • Medium–High. The QMD backend itself works, but the official OpenClaw integration for memory indexing and cron updates fails with SafeOpenError.
  • This undermines the “it just works” behavior for persistent memory across sessions.

Frequency:

  • 100% repro on my setup with OpenClaw 2026.3.28 and QMD enabled.
  • Happens for every agent (main + multiple assistants) whenever memory indexing or cron QMD update runs.

Consequence:

  • Automatic memory indexing via openclaw memory index and the cron job fails.
  • I have to run QMD manually inside the container to update/embed, which is not practical for production and breaks the expected OpenClaw UX for QMD memory.

Additional information

No response

extent analysis

TL;DR

The most likely fix is to ensure that OpenClaw's memory indexer and cron job invoke QMD with the correct "root" path for the safe-open check, matching the one that works when QMD is run directly with the documented XDG paths.

Guidance

  • Verify that the XDG_CONFIG_HOME and XDG_CACHE_HOME environment variables are set correctly for each agent when running the OpenClaw memory indexer and cron job.
  • Check the OpenClaw configuration file (~/.openclaw/openclaw.json) to ensure that the memory and agents settings are correctly configured for the multi-agent setup.
  • Run the OpenClaw memory indexer with the --verbose flag to gather more detailed logs and identify the specific paths being used for the safe-open check.
  • Compare the paths used by the OpenClaw memory indexer and cron job with the paths used when running QMD directly to identify any discrepancies.

Example

No code snippet is provided as the issue seems to be related to configuration and environment variables rather than code.

Notes

The issue appears to be specific to the OpenClaw 2026.3.28 version and the QMD memory backend. The problem may be resolved by updating OpenClaw to a newer version or by modifying the configuration to match the expected paths for the safe-open check.

Recommendation

Apply a workaround by setting the correct XDG_CONFIG_HOME and XDG_CACHE_HOME environment variables for each agent when running the OpenClaw memory indexer and cron job, to match the ones that work when QMD is run directly. This should resolve the SafeOpenError issue and allow the memory indexing and cron updates to work as expected.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

  • OpenClaw’s memory indexer (openclaw memory index) and cron-based QMD updates should reuse the same effective QMD configuration that works when QMD is run directly with the documented XDG env vars.
  • For each agent, QMD boot/update should succeed using the per-agent state directory under: ~/.openclaw/agents/<agentId>/qmd/xdg-cache/qmd/index.sqlite
  • No SafeOpenError should be raised as long as the target paths are regular files under the expected per-agent state root.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING