openclaw - 💡(How to fix) Fix memory CLI fails with Unknown memory embedding provider: local [1 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#71559Fetched 2026-04-26 05:11:28
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
0
Timeline (top)
closed ×1commented ×1

Error Message

Error: both exit successfully. memory status reports vector search available (dims: 768, sqlite-vec loaded), and memory promote --json completes without the provider error.

Root Cause

Root cause observed locally

Fix Action

Fix / Workaround

Local dist before workaround:

A local workaround that fixes the issue:

After applying this local workaround:

Code Example

openclaw memory status --json
openclaw memory promote --json

---

Unknown memory embedding provider: local
    at getAdapter (.../dist/manager-*.js)
    at createEmbeddingProvider (...)
    at MemoryIndexManager.loadProviderResult (...)

---

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "enabled": true,
        "fallback": "none",
        "provider": "local",
        "local": {
          "modelPath": "C:\\Users\\14324\\.node-llama-cpp\\models\\embeddinggemma-300m-qat-Q8_0.gguf"
        }
      }
    }
  }
}

---

provider: local
model: C:\Users\14324\.node-llama-cpp\models\embeddinggemma-300m-qat-Q8_0.gguf

---

Unknown memory embedding provider: local

---

dist/extensions/memory-core/manager-runtime.js

---

import { n as closeAllMemoryIndexManagers, t as MemoryIndexManager } from "../../manager-xvPcitvj.js";
export { MemoryIndexManager, closeAllMemoryIndexManagers };

---

import {
  n as closeAllMemoryIndexManagers,
  o as registerBuiltInMemoryEmbeddingProviders,
  t as MemoryIndexManager
} from "../../manager-xvPcitvj.js";

import { a as registerMemoryEmbeddingProvider } from "../../memory-embedding-providers-BZk7dl3-.js";

registerBuiltInMemoryEmbeddingProviders({ registerMemoryEmbeddingProvider });

export { MemoryIndexManager, closeAllMemoryIndexManagers };

---

openclaw memory status --json
openclaw memory promote --json
RAW_BUFFERClick to expand / collapse

Bug

After upgrading to OpenClaw 2026.4.22, runtime memory search works with agents.defaults.memorySearch.provider = "local", but CLI memory commands fail:

openclaw memory status --json
openclaw memory promote --json

Error:

Unknown memory embedding provider: local
    at getAdapter (.../dist/manager-*.js)
    at createEmbeddingProvider (...)
    at MemoryIndexManager.loadProviderResult (...)

Environment

  • OpenClaw: 2026.4.22
  • OS: Windows 11 / Windows_NT 10.0.26100 x64
  • Node: v24.14.1
  • memorySearch provider: local
  • local model path: C:\Users\14324\.node-llama-cpp\models\embeddinggemma-300m-qat-Q8_0.gguf

Relevant config:

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "enabled": true,
        "fallback": "none",
        "provider": "local",
        "local": {
          "modelPath": "C:\\Users\\14324\\.node-llama-cpp\\models\\embeddinggemma-300m-qat-Q8_0.gguf"
        }
      }
    }
  }
}

Expected

CLI memory commands should recognize the built-in local memory embedding provider, same as runtime memory_search.

Actual

memory_search from the running agent works and returns results using:

provider: local
model: C:\Users\14324\.node-llama-cpp\models\embeddinggemma-300m-qat-Q8_0.gguf

But CLI commands fail with:

Unknown memory embedding provider: local

Root cause observed locally

The CLI path appears to load:

dist/extensions/memory-core/manager-runtime.js

That file directly exports MemoryIndexManager but does not register built-in memory embedding providers before the manager is used.

Local dist before workaround:

import { n as closeAllMemoryIndexManagers, t as MemoryIndexManager } from "../../manager-xvPcitvj.js";
export { MemoryIndexManager, closeAllMemoryIndexManagers };

A local workaround that fixes the issue:

import {
  n as closeAllMemoryIndexManagers,
  o as registerBuiltInMemoryEmbeddingProviders,
  t as MemoryIndexManager
} from "../../manager-xvPcitvj.js";

import { a as registerMemoryEmbeddingProvider } from "../../memory-embedding-providers-BZk7dl3-.js";

registerBuiltInMemoryEmbeddingProviders({ registerMemoryEmbeddingProvider });

export { MemoryIndexManager, closeAllMemoryIndexManagers };

After applying this local workaround:

openclaw memory status --json
openclaw memory promote --json

both exit successfully. memory status reports vector search available (dims: 768, sqlite-vec loaded), and memory promote --json completes without the provider error.

Suggested fix

Ensure the memory-core manager runtime registers built-in memory embedding providers before exporting/constructing MemoryIndexManager, or move provider registration into the manager initialization path so CLI and runtime behavior are consistent.

extent analysis

TL;DR

The issue can be fixed by registering built-in memory embedding providers before exporting or constructing MemoryIndexManager.

Guidance

  • Review the manager-runtime.js file to ensure it registers built-in memory embedding providers before using MemoryIndexManager.
  • Verify that the registerBuiltInMemoryEmbeddingProviders function is called with the correct registerMemoryEmbeddingProvider function.
  • Check the import statements to ensure that all necessary modules are imported correctly.
  • Consider moving provider registration into the manager initialization path for consistent behavior between CLI and runtime.

Example

import {
  n as closeAllMemoryIndexManagers,
  o as registerBuiltInMemoryEmbeddingProviders,
  t as MemoryIndexManager
} from "../../manager-xvPcitvj.js";

import { a as registerMemoryEmbeddingProvider } from "../../memory-embedding-providers-BZk7dl3-.js";

registerBuiltInMemoryEmbeddingProviders({ registerMemoryEmbeddingProvider });

export { MemoryIndexManager, closeAllMemoryIndexManagers };

Notes

The suggested fix assumes that the registerBuiltInMemoryEmbeddingProviders function is available and correctly implemented. If this function is not available, alternative solutions may be needed.

Recommendation

Apply the workaround by registering built-in memory embedding providers before exporting or constructing MemoryIndexManager, as this ensures consistent behavior between CLI and runtime.

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