Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
openclaw status on 2026.4.2 initializes the active memory plugin in the CLI process, which can trigger plugin startup side effects and report false memory/vector state that disagrees with the live launchd-managed gateway.
Steps to reproduce
- Install/run OpenClaw 2026.4.2 on macOS with a custom memory plugin in
plugins.slots.memory (openclaw-memory-openbrain in my case).
- Ensure the live launchd-managed gateway is running and check
~/.openclaw/logs/gateway.log.
- Run
openclaw status.
- Observe that the status command locally loads the memory plugin and reports memory/vector state from the CLI process instead of the live gateway.
Expected behavior
openclaw status should be read-only and should not initialize plugin startup paths that mutate state or trigger heavyweight side effects. If it reports memory/vector state, that state should reflect the live gateway runtime rather than a separate CLI-local plugin runtime.
Actual behavior
Observed on 2026.4.2:
openclaw status loads the memory plugin locally and executes register(api) in the CLI/status process.
- Before a local containment patch, the status path triggered embedder/backfill/vector startup work and reported:
sqlite-vec load failed: Error: out of memory
vector off
- At the same time, the actual launchd-managed gateway log showed successful vec load:
[openclaw-memory] sqlite-vec loaded via OpenClaw SDK: /opt/homebrew/lib/node_modules/openclaw/node_modules/sqlite-vec-darwin-arm64/vec0.dylib
- After adding a plugin-local passive-status guard,
openclaw status stopped triggering vec/embedder work and stopped reporting the false vector failure.
OpenClaw version
2026.4.2 (d74a122)
Operating system
macOS 15 / Darwin 25.2.0 (arm64)
Install method
npm global / launchd-managed gateway
Model
N/A (status command path; not model-dependent)
Provider / routing chain
N/A for reproduction. The bug is in CLI status/runtime/plugin initialization, not model routing.
Additional provider/model setup details
NOT_ENOUGH_INFO
Logs, screenshots, and evidence
# Current 2026.4.2 status path reaches local plugin code:
[plugins] memory-openbrain: local store opened at /Users/shawnpetros/.openclaw/memory/memory.db (117 thoughts)
[plugins] memory-openbrain: status context detected — skipping embedder/backfill init
[plugins] memory-openbrain v3: backend=local, autoCapture=true, autoRecall=true, injectContext=true
[plugins] memory-openbrain: already registered in this process, skipping duplicate init
│ Memory │ 0 files · 117 chunks · sources memory · plugin openclaw-memory-openbrain │
# Before the plugin-local containment patch, the same `openclaw status` path reported:
[plugins] memory-openbrain: local store opened at /Users/shawnpetros/.openclaw/memory/memory.db (117 thoughts)
[plugins] memory-openbrain v3: backend=local, autoCapture=true, autoRecall=true, injectContext=true
[plugins] memory-openbrain: already registered in this process, skipping duplicate init
│ Memory │ 0 files · 117 chunks · sources memory · plugin openclaw-memory-openbrain · vector off │
[plugins] memory-openbrain: embedder ready (ollama/nomic-embed-text), vec will lazy-load on first use
[openclaw-memory] sqlite-vec load failed: Error: out of memory
# At the same time, the live launchd gateway log showed vec loading successfully:
2026-04-07T08:59:20.383-07:00 [plugins] memory-openbrain: local store opened at /Users/shawnpetros/.openclaw/memory/memory.db (117 thoughts)
2026-04-07T08:59:20.787-07:00 [plugins] memory-openbrain: embedder ready (ollama/nomic-embed-text), vec will lazy-load on first use
2026-04-07T08:59:20.798-07:00 [openclaw-memory] sqlite-vec loaded via OpenClaw SDK: /opt/homebrew/lib/node_modules/openclaw/node_modules/sqlite-vec-darwin-arm64/vec0.dylib
Observed call path in installed dist:
status.scan → resolveMemoryStatusSnapshot(...)
resolveSharedMemoryStatusSnapshot(...)
getMemorySearchManager(...)
getActiveMemorySearchManager(...)
ensureMemoryRuntime(...)
resolveRuntimePluginRegistry(...)
- plugin
register(api) executes in the CLI process
Impact and severity
Affected: users of memory plugins with non-trivial startup side effects (embedder init, vector probes, backfill, network/DB work)
Severity: medium to high (status becomes misleading, can trigger unexpected plugin work, and can report false failures)
Frequency: reproduced consistently in this environment
Consequence: openclaw status can disagree with the real gateway runtime and may cause plugin-local side effects during what should be a read-only inspection path
Additional information
- A plugin-local containment patch proved the blast radius can be reduced: when the plugin detects
status context and skips heavyweight startup, the false vec/OOM report disappears.
- Based on the installed 2026.4.2 dist code, the status command currently instantiates the memory runtime locally instead of asking the live gateway for memory/vector truth.
- I have not opened a PR yet. I wanted to file the issue first with grounded evidence.
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
openclaw statuson 2026.4.2 initializes the active memory plugin in the CLI process, which can trigger plugin startup side effects and report false memory/vector state that disagrees with the live launchd-managed gateway.Steps to reproduce
plugins.slots.memory(openclaw-memory-openbrainin my case).~/.openclaw/logs/gateway.log.openclaw status.Expected behavior
openclaw statusshould be read-only and should not initialize plugin startup paths that mutate state or trigger heavyweight side effects. If it reports memory/vector state, that state should reflect the live gateway runtime rather than a separate CLI-local plugin runtime.Actual behavior
Observed on 2026.4.2:
openclaw statusloads the memory plugin locally and executesregister(api)in the CLI/status process.sqlite-vec load failed: Error: out of memoryvector off[openclaw-memory] sqlite-vec loaded via OpenClaw SDK: /opt/homebrew/lib/node_modules/openclaw/node_modules/sqlite-vec-darwin-arm64/vec0.dylibopenclaw statusstopped triggering vec/embedder work and stopped reporting the false vector failure.OpenClaw version
2026.4.2 (d74a122)
Operating system
macOS 15 / Darwin 25.2.0 (arm64)
Install method
npm global / launchd-managed gateway
Model
N/A (status command path; not model-dependent)
Provider / routing chain
N/A for reproduction. The bug is in CLI status/runtime/plugin initialization, not model routing.
Additional provider/model setup details
NOT_ENOUGH_INFO
Logs, screenshots, and evidence
Observed call path in installed dist:
status.scan→resolveMemoryStatusSnapshot(...)resolveSharedMemoryStatusSnapshot(...)getMemorySearchManager(...)getActiveMemorySearchManager(...)ensureMemoryRuntime(...)resolveRuntimePluginRegistry(...)register(api)executes in the CLI processImpact and severity
Affected: users of memory plugins with non-trivial startup side effects (embedder init, vector probes, backfill, network/DB work)
Severity: medium to high (status becomes misleading, can trigger unexpected plugin work, and can report false failures)
Frequency: reproduced consistently in this environment
Consequence:
openclaw statuscan disagree with the real gateway runtime and may cause plugin-local side effects during what should be a read-only inspection pathAdditional information
statuscontext and skips heavyweight startup, the false vec/OOM report disappears.