openclaw - 💡(How to fix) Fix Active Memory plugin + qmd update chain times out at 120s on 4.15 [2 comments, 2 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#68825Fetched 2026-04-19 15:07:00
View on GitHub
Comments
2
Participants
2
Timeline
4
Reactions
0
Author
Participants
Timeline (top)
commented ×2mentioned ×1subscribed ×1

After upgrading from 2026.3.242026.4.15, enabling the Active Memory plugin causes every blocking sub-agent call to time out, accompanied by correlated [memory] qmd update failed (Error: qmd update timed out after 120000ms) errors in the gateway log.

Error Message

Every active-memory blocking sub-agent call:

Root Cause

After upgrading from 2026.3.242026.4.15, enabling the Active Memory plugin causes every blocking sub-agent call to time out, accompanied by correlated [memory] qmd update failed (Error: qmd update timed out after 120000ms) errors in the gateway log.

Fix Action

Workaround

Disabling the Active Memory plugin stops all qmd timeouts and eliminates the user-facing error surface. Memory still works via session bootstrap and post-compaction re-loads — only per-turn recall is lost.

Code Example

[plugins] active-memory: agent=signal-chat session=agent:signal-chat:signal:direct:+REDACTED activeProvider=anthropic activeModel=claude-haiku-4-5 start timeoutMs=3000 queryChars=404
[agent/embedded] embedded run failover decision: runId=active-memory-... stage=assistant decision=surface_error reason=timeout from=anthropic/claude-haiku-4-5
[plugins] active-memory: done status=timeout elapsedMs=9839 summaryChars=0

[memory] qmd update failed (Error: qmd update timed out after 120000ms)
[memory] qmd update failed (Error: qmd update timed out after 120000ms)
(repeats per turn; 12 within a few minutes)
RAW_BUFFERClick to expand / collapse

Summary

After upgrading from 2026.3.242026.4.15, enabling the Active Memory plugin causes every blocking sub-agent call to time out, accompanied by correlated [memory] qmd update failed (Error: qmd update timed out after 120000ms) errors in the gateway log.

Environment

  • OpenClaw: 2026.4.15 (image + npm-global binary via npm install -g --prefix /data/.npm-global openclaw@latest)
  • qmd: 1.0.7 (@tobilu/qmd)
  • Runtime: Docker container, Node 24, Linux x86_64, CPU-only (CUDA compile fails, falls back to CPU)
  • Agent: signal-chat, Signal DM direct chat type
  • Active Memory config: queryMode: message, promptStyle: balanced, thinking: off, timeoutMs: 12000

Observed behavior

Every active-memory blocking sub-agent call:

  1. Takes 8–12 seconds regardless of model provider
  2. Times out (or returns summaryChars=0)
  3. Correlates 1:1 with [memory] qmd update failed timeouts at the 120000ms cap
  4. Surfaces ⚠️ Gateway: exec failed in the user-facing chat reply

Tested with both anthropic/claude-haiku-4-5 AND google/gemini-2.5-flash-lite — identical latency, suggests the bottleneck is NOT the LLM provider.

Log excerpts

[plugins] active-memory: agent=signal-chat session=agent:signal-chat:signal:direct:+REDACTED activeProvider=anthropic activeModel=claude-haiku-4-5 start timeoutMs=3000 queryChars=404
[agent/embedded] embedded run failover decision: runId=active-memory-... stage=assistant decision=surface_error reason=timeout from=anthropic/claude-haiku-4-5
[plugins] active-memory: done status=timeout elapsedMs=9839 summaryChars=0

[memory] qmd update failed (Error: qmd update timed out after 120000ms)
[memory] qmd update failed (Error: qmd update timed out after 120000ms)
(repeats per turn; 12 within a few minutes)

qmd CLI is healthy

The qmd CLI itself responds fast when invoked directly:

  • qmd --help — instant
  • qmd status — instant
  • qmd collection add . --mask '*.md' — 31 files indexed in <1s
  • qmd embed — 84 chunks with embeddinggemma-300M in 65s on CPU

So the hang is specific to the runtime path Active Memory uses to invoke qmd, not the qmd binary.

Reproduction

  1. Upgrade from 2026.3.24 → 2026.4.15 (both image pull and npm install -g --prefix /data/.npm-global openclaw@latest)
  2. Workspace with a non-trivial MEMORY.md (~160 lines) and large skills registry (~18 skills)
  3. Enable active-memory in plugins.entries with agents: ["signal-chat"]
  4. Send a DM to the agent over Signal
  5. Observe ⚠️ Gateway: exec failed in the reply and qmd 120s timeouts in the gateway log

Workaround

Disabling the Active Memory plugin stops all qmd timeouts and eliminates the user-facing error surface. Memory still works via session bootstrap and post-compaction re-loads — only per-turn recall is lost.

Possible causes (speculative)

  • qmd update path holds a lock or semaphore that doesn't release; subsequent calls pile up
  • Embedded-run setup loads oversized context (skills registry, tool definitions) before reaching the model
  • Regression from the 4.12 introduction of the blocking sub-agent — the 4.7 memory-wiki / memory-core / memory-lancedb refactor didn't propagate into the active-memory plugin path

Happy to run additional diagnostics or share full log chunks if helpful.

extent analysis

TL;DR

The most likely fix is to investigate and resolve the qmd update timeout issue, potentially by adjusting the timeoutMs configuration or optimizing the qmd update process.

Guidance

  • Verify that the qmd update timeout is the root cause by checking the gateway log for [memory] qmd update failed errors and correlating them with the active-memory plugin timeouts.
  • Investigate the qmd update process to determine why it's taking longer than expected, potentially by adding logging or debugging statements to the active-memory plugin.
  • Consider adjusting the timeoutMs configuration for the active-memory plugin to a higher value to see if it resolves the issue, but be cautious of potential performance impacts.
  • Review the skills registry and tool definitions to ensure they are not causing oversized context loads that could be contributing to the qmd update timeouts.

Example

No code snippet is provided as the issue is more related to configuration and plugin interaction.

Notes

The issue seems to be specific to the active-memory plugin and its interaction with the qmd update process. The fact that the qmd CLI is healthy and responds quickly when invoked directly suggests that the issue is not with the qmd binary itself, but rather with how it's being used by the active-memory plugin.

Recommendation

Apply a workaround by adjusting the timeoutMs configuration for the active-memory plugin or optimizing the qmd update process, as disabling the plugin is not a viable long-term solution. This will allow for further investigation and debugging to determine the root cause of the issue.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING