openclaw - 💡(How to fix) Fix doctor/status memory false positive after mem0 runtime recovery [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#60819Fetched 2026-04-08 02:46:48
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Author
Participants

After fixing a real openclaw-mem0 runtime regression locally, mem0 runtime recovered and is actively working again, but OpenClaw still reports memory as unavailable/unregistered in diagnostics.

This appears to be a doctor/status false positive.

Root Cause

After fixing a real openclaw-mem0 runtime regression locally, mem0 runtime recovered and is actively working again, but OpenClaw still reports memory as unavailable/unregistered in diagnostics.

This appears to be a doctor/status false positive.

Code Example

Memory search
No active memory plugin is registered for the current config.

---

Memory enabled (plugin openclaw-mem0) · unavailable

---

[plugins] openclaw-mem0: registered (mode: open-source, user: davie, graph: false, autoRecall: true, autoCapture: true)
[plugins] openclaw-mem0: injecting 10 memories into context (5 long-term, 5 session)
[plugins] openclaw-mem0: auto-captured 9 memories

---

{
  "code": "invalid_type",
  "expected": "string",
  "received": "object",
  "path": ["embedder", "config", "apiKey"]
}
RAW_BUFFERClick to expand / collapse

Bug: openclaw doctor / openclaw status report memory unavailable even when mem0 runtime is healthy

Summary

After fixing a real openclaw-mem0 runtime regression locally, mem0 runtime recovered and is actively working again, but OpenClaw still reports memory as unavailable/unregistered in diagnostics.

This appears to be a doctor/status false positive.

Environment

  • OpenClaw: 2026.4.2
  • OS: macOS 26.4
  • Node: 25.9.0
  • Memory plugin: @mem0/[email protected]
  • Mode: local gateway on 127.0.0.1:18789

Current incorrect diagnostics

openclaw doctor --non-interactive

Memory search
No active memory plugin is registered for the current config.

openclaw status

Memory enabled (plugin openclaw-mem0) · unavailable

Why this looks wrong

At the same time, runtime logs clearly show the memory plugin is active and working:

[plugins] openclaw-mem0: registered (mode: open-source, user: davie, graph: false, autoRecall: true, autoCapture: true)
[plugins] openclaw-mem0: injecting 10 memories into context (5 long-term, 5 session)
[plugins] openclaw-mem0: auto-captured 9 memories

After the full gateway restart, there were no new mem0 runtime validation errors.

Important context

There was a real mem0 regression first:

  • nested mem0 plugin config apiKey fields had been migrated from plain strings to SecretRef objects
  • the installed openclaw-mem0 path expected strings and emitted repeated runtime errors like:
{
  "code": "invalid_type",
  "expected": "string",
  "received": "object",
  "path": ["embedder", "config", "apiKey"]
}

That real runtime problem was fixed locally by making the plugin resolve nested SecretRefs before validation/use.

After that fix + full gateway restart:

  • mem0 resumed normal runtime behavior
  • invalid_type errors stopped
  • doctor/status warnings remained

So the current issue being reported here is the remaining false-positive diagnostic state after runtime recovery, not the earlier plugin regression itself.

Expected behavior

If the memory plugin is:

  • registered
  • injecting memories into context
  • auto-capturing memories
  • no longer throwing current runtime validation errors

then:

  • openclaw doctor should not say "No active memory plugin is registered"
  • openclaw status should not say "Memory ... unavailable"

Actual behavior

Doctor/status still report memory as unavailable/unregistered even though runtime memory behavior is working.

Likely area to inspect

This looks like a mismatch between:

  • doctor/status health heuristics
  • actual runtime plugin registration and operation

Possibly:

  • slot detection vs runtime registration path
  • capability/health probe using a stale or stricter signal than actual runtime success
  • diagnostic code not recognizing recovered plugin state correctly

Suggested fix

Align doctor/status memory health reporting with actual runtime memory-plugin state.

If full confidence is not possible, downgrade the wording to something softer, e.g.:

  • Memory plugin registered, but health probe is inconclusive

instead of:

  • No active memory plugin is registered for the current config

Repro-ish path

  1. Start with mem0 enabled as the memory slot plugin.
  2. Ensure runtime logs show mem0 registration + successful inject/capture behavior.
  3. Run:
    • openclaw doctor --non-interactive
    • openclaw status
  4. Observe that diagnostics still claim memory is unavailable/unregistered.

Notes

  • This report is about the remaining false-positive doctor/status signal.
  • The earlier runtime regression was real, but once fixed, diagnostics did not catch up to the recovered runtime state.

extent analysis

TL;DR

The most likely fix is to update the openclaw doctor and openclaw status health heuristics to accurately reflect the runtime memory-plugin state.

Guidance

  • Review the doctor/status health heuristics to ensure they align with the actual runtime plugin registration and operation.
  • Consider downgrading the wording of the diagnostic messages to reflect uncertainty, such as "Memory plugin registered, but health probe is inconclusive".
  • Verify that the openclaw-mem0 plugin is correctly resolving nested SecretRefs before validation/use.
  • Check the runtime logs to confirm that the memory plugin is actively working and injecting memories into context.

Example

No code snippet is provided as the issue does not explicitly mention a specific code change.

Notes

The issue appears to be a mismatch between the doctor/status health heuristics and the actual runtime plugin registration and operation. The suggested fix is to align these heuristics with the actual runtime state.

Recommendation

Apply a workaround by downgrading the wording of the diagnostic messages to reflect uncertainty, such as "Memory plugin registered, but health probe is inconclusive", until a full fix can be implemented to update the health heuristics.

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

If the memory plugin is:

  • registered
  • injecting memories into context
  • auto-capturing memories
  • no longer throwing current runtime validation errors

then:

  • openclaw doctor should not say "No active memory plugin is registered"
  • openclaw status should not say "Memory ... unavailable"

Still need to ship something?

×6

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

Back to top recommendations

TRENDING