openclaw - 💡(How to fix) Fix [Bug]: QMD boot probe triggers llama.cpp build on ARM Linux — searchMode: "search" should skip vector probe [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

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#59234Fetched 2026-04-08 02:27:09
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Timeline (top)
commented ×1mentioned ×1subscribed ×1

When memory.backend: "qmd" is enabled with searchMode: "search" (BM25-only), OpenClaw still calls qmd status at boot to probe vector capability. On ARM Linux without Vulkan (e.g. Oracle Cloud aarch64), this causes QMD to attempt a full CMake + llama.cpp compile, fail, hit OpenClaw's 5s containment timeout, and leave all agents with Vector: unavailable and 0 chunks indexed.

Error Message

Provider: qmd (requested: qmd) Model: qmd Sources: memory, sessions Indexed: 0/N files · 0 chunks Dirty: no Vector: unavailable Vector error: QMD status probe failed: qmd status timed out after 5000ms Batch: disabled (failures 0/0)

Root Cause

The root cause is in QMD itself — qmd status should not trigger a build. Filed separately: tobi/qmd#491

However, OpenClaw can defensively fix this on its side by not probing vector capability when it isn't needed per the configured search mode.

Code Example

{
  "memory": {
    "backend": "qmd",
    "qmd": {
      "searchMode": "search",
      "sessions": { "enabled": true },
      "scope": { "default": "allow" },
      "limits": { "timeoutMs": 8000 }
    }
  }
}

---

Provider: qmd (requested: qmd)
Model: qmd
Sources: memory, sessions
Indexed: 0/N files · 0 chunks
Dirty: no
Vector: unavailable
Vector error: QMD status probe failed: qmd status timed out after 5000ms
Batch: disabled (failures 0/0)

---

CMake Error: Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR glslc)
ERROR OMG Process terminated: 1
RAW_BUFFERClick to expand / collapse

Summary

When memory.backend: "qmd" is enabled with searchMode: "search" (BM25-only), OpenClaw still calls qmd status at boot to probe vector capability. On ARM Linux without Vulkan (e.g. Oracle Cloud aarch64), this causes QMD to attempt a full CMake + llama.cpp compile, fail, hit OpenClaw's 5s containment timeout, and leave all agents with Vector: unavailable and 0 chunks indexed.

Environment

  • OpenClaw version: 2026.4.1 (da64a97)
  • QMD version: 2.0.1
  • OS: Linux 6.17.0-1009-oracle (arm64, Oracle Cloud)
  • Node: v22.22.2
  • Config:
{
  "memory": {
    "backend": "qmd",
    "qmd": {
      "searchMode": "search",
      "sessions": { "enabled": true },
      "scope": { "default": "allow" },
      "limits": { "timeoutMs": 8000 }
    }
  }
}

Observed Behavior

After gateway restart, openclaw memory status shows for all 4 agents:

Provider: qmd (requested: qmd)
Model: qmd
Sources: memory, sessions
Indexed: 0/N files · 0 chunks
Dirty: no
Vector: unavailable
Vector error: QMD status probe failed: qmd status timed out after 5000ms
Batch: disabled (failures 0/0)

Gateway log confirms qmd status triggers CMake + llama.cpp build (Vulkan required, not available on this ARM server):

CMake Error: Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR glslc)
ERROR OMG Process terminated: 1

Expected Behavior

When searchMode: "search" is configured, vector capability is not needed at query time. OpenClaw should either:

  1. Skip the vector probe entirely when searchMode: "search" — no need to check if llama.cpp works if we're never going to use it
  2. Pass a flag/env var to qmd status instructing it not to initialize the embedding runtime (if QMD exposes such an option)
  3. Degrade gracefully — if the vector probe fails/times out but searchMode: "search" is set, still index and serve BM25 results instead of leaving chunks at 0

Currently the timeout is contained (gateway stays responsive), but the QMD backend is left fully non-functional even though BM25 search would work fine.

Root Cause

The root cause is in QMD itself — qmd status should not trigger a build. Filed separately: tobi/qmd#491

However, OpenClaw can defensively fix this on its side by not probing vector capability when it isn't needed per the configured search mode.

Additional Context

  • Bug #58643 (collection naming collision) was confirmed fixed in v2026.4.1 ✅
  • This is the remaining blocker for QMD on ARM Linux without GPU
  • The 5s timeoutMs containment added in v2026.4.1 prevents the prior gateway hang, but QMD still ends up non-functional

extent analysis

TL;DR

OpenClaw should skip the vector probe when searchMode is set to "search" to prevent QMD from attempting to compile and failing due to missing Vulkan dependencies.

Guidance

  • Modify the OpenClaw configuration to skip the vector probe when searchMode is "search" by adding a conditional check for the search mode before calling qmd status.
  • Consider adding a flag or environment variable to qmd status to prevent it from initializing the embedding runtime when not needed.
  • As a temporary workaround, manually set the Vector status to "available" in the OpenClaw configuration to allow BM25 search to function, although this may not be a permanent solution.

Example

No code snippet is provided as the issue is more related to configuration and conditional checks rather than code changes.

Notes

The root cause of the issue lies in QMD itself, but OpenClaw can implement a defensive fix to prevent the vector probe when not needed. This fix should be implemented in conjunction with the fix for the QMD issue (tobi/qmd#491).

Recommendation

Apply a workaround by modifying the OpenClaw configuration to skip the vector probe when searchMode is "search", as this will allow BM25 search to function even if the vector capability is not available.

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