openclaw - 💡(How to fix) Fix [Bug]: memory_recall tool returns 404 — API path mismatch with OpenViking 0.3.2 [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#59679Fetched 2026-04-08 02:41:46
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Author
Participants
Timeline (top)
closed ×1locked ×1

The memory_recall tool (exposed to agents via the openviking plugin) calls POST /api/v1/memory/recall, which does not exist in OpenViking 0.3.2. The correct endpoint is POST /api/v1/search/search.

Meanwhile, the context engine (auto-recall via before_prompt_build) uses the correct /api/v1/search/search path and works fine — it successfully injects relevant-memories into every message. This means two code paths within the same plugin are targeting different API routes.

Root Cause

The openviking plugin has two separate code paths:

  1. Context engine (before_prompt_build / auto-recall) → calls /api/v1/search/search
  2. memory_recall tool → calls /api/v1/memory/recall ❌ (404)

The tool path appears to target an older or unreleased API spec that does not match OpenViking 0.3.2.

Fix Action

Fix / Workaround

  • OpenViking version: 0.3.2 (latest on PyPI as of 2026-04-02)
  • The memory_store and memory_forget tools may have similar path issues (not fully tested)
  • The plugin is bundled inside OpenClaw's dist, making it hard for users to patch

Code Example

"POST /api/v1/memory/recall HTTP/1.1" 404

---

curl -s http://127.0.0.1:1933/api/v1/search/search \
  -X POST -H "Content-Type: application/json" \
  -d '{"query":"咖啡","limit":5}'
# → returns matching memory with score 0.64
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Summary

The memory_recall tool (exposed to agents via the openviking plugin) calls POST /api/v1/memory/recall, which does not exist in OpenViking 0.3.2. The correct endpoint is POST /api/v1/search/search.

Meanwhile, the context engine (auto-recall via before_prompt_build) uses the correct /api/v1/search/search path and works fine — it successfully injects relevant-memories into every message. This means two code paths within the same plugin are targeting different API routes.

Steps to reproduce

  1. Install OpenClaw 2026.4.1 with OpenViking 0.3.2 (pip install openviking)
  2. Enable the openviking plugin in openclaw.json
  3. Store a memory via memory_store tool → succeeds (data written to session)
  4. Wait for extraction to complete → memory appears in relevant-memories header ✅
  5. Use memory_recall tool to search for the same memory → returns "No relevant memories found" ❌

Expected behavior

memory_recall should return matching memories from OpenViking, consistent with the auto-recall context engine results.

Actual behavior

memory_recall always returns empty. OpenViking access log shows:

"POST /api/v1/memory/recall HTTP/1.1" 404

The endpoint /api/v1/memory/recall does not exist in OpenViking 0.3.2. The full API surface (from /openapi.json) includes:

  • POST /api/v1/search/search ← correct endpoint for recall
  • POST /api/v1/search/find
  • POST /api/v1/search/grep
  • POST /api/v1/search/glob

No /api/v1/memory/* routes exist.

Evidence

Manual curl to the correct endpoint returns results:

curl -s http://127.0.0.1:1933/api/v1/search/search \
  -X POST -H "Content-Type: application/json" \
  -d '{"query":"咖啡","limit":5}'
# → returns matching memory with score 0.64

The context engine's auto-recall (injected as relevant-memories in message headers) works correctly every time, proving the data exists and is searchable.

Root cause

The openviking plugin has two separate code paths:

  1. Context engine (before_prompt_build / auto-recall) → calls /api/v1/search/search
  2. memory_recall tool → calls /api/v1/memory/recall ❌ (404)

The tool path appears to target an older or unreleased API spec that does not match OpenViking 0.3.2.

OpenClaw version

2026.4.1 (da64a97)

Operating system

Linux (Kali, kernel 6.18.12)

Install method

npm global

Additional notes

  • OpenViking version: 0.3.2 (latest on PyPI as of 2026-04-02)
  • The memory_store and memory_forget tools may have similar path issues (not fully tested)
  • The plugin is bundled inside OpenClaw's dist, making it hard for users to patch

extent analysis

TL;DR

Update the memory_recall tool in the openviking plugin to use the correct endpoint POST /api/v1/search/search instead of POST /api/v1/memory/recall.

Guidance

  • Verify the API endpoint used by the memory_recall tool is indeed POST /api/v1/memory/recall by checking the plugin's code or the OpenViking access log for 404 errors.
  • Update the memory_recall tool to use the correct endpoint POST /api/v1/search/search, which is already used by the context engine and proven to work.
  • Test the memory_store and memory_forget tools to ensure they are not using incorrect API paths as well.
  • Consider patching the openviking plugin or updating OpenClaw to include the corrected plugin, as the current version has a hardcoded incorrect endpoint.

Example

No code snippet is provided as the issue does not include the specific code that needs to be changed, but the fix involves updating the API endpoint used by the memory_recall tool to POST /api/v1/search/search.

Notes

The openviking plugin is bundled inside OpenClaw's distribution, making it difficult for users to patch. The memory_store and memory_forget tools may have similar issues and should be tested.

Recommendation

Apply the workaround by updating the memory_recall tool to use the correct endpoint POST /api/v1/search/search, as this is a targeted fix for the identified issue and does not require upgrading OpenViking or OpenClaw.

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

memory_recall should return matching memories from OpenViking, consistent with the auto-recall context engine results.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING