Skip to content

[Bug]: Title: Local embedding provider breaks on upgrade (two consecutive releases) — no migration path, misleading error #92808

Description

@Alyx-Learbott

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

After upgrading OpenClaw, local memory search (provider: "local") breaks with an unhelpful error message. This has happened in two consecutive releases (2026.6.5 → 2026.6.6). The root causes differ, but the pattern is the same: memory_search returns nothing, openclaw memory status --deep fails, and the error message does not point to the actual fix.

2026.6.5 → 2026.6.6 upgrade

After updating from 2026.6.5 to 2026.6.6, memory search failed with:

Copy
openai-compatible embeddings: missing model. Set it to the embedding model id your server expects.
Despite provider being set to "local", the system fell back to an "openai-compatible" code path and errored out. This happened because:

1. The local embedding runtime was extracted into a plugin (@openclaw/llama-cpp-provider) in 2026.6.6, but the plugin was not auto-installed or flagged as a required migration step.
2. openclaw doctor suggested installing the plugin but did not offer a one-command fix or auto-install it.
3. After installing the plugin, there was a modelPath format mismatch: the old index was built with hf:ggml-org/embeddinggemma-300m-qat-q8_0-GGUF/embeddinggemma-300m-qat-Q8_0.gguf, but the config had been set to the absolute filesystem path. The system rejected the existing index because the model identifier didn't match exactly.
4. The CLI memory index command does not load gateway plugins, so even after the plugin was installed and the gateway was using it for search, openclaw memory index --force still failed with the same "openai-compatible: missing model" error. Only gateway-routed memory_search calls work.

### 2026.5.x → 2026.6.5 upgrade
After a prior update, memory search also broke because the embedding index was wiped/invalidatedd while the embedding engine itself still worked. The @openclaw/llama-cpp-provider plugin referenced in docs did not yet exist on ClawHub, requiring a manual workaround to reindex.

### Suggested improvements

1. Auto-install or prompt for the llama-cpp plugin when provider: "local" is configured and the plugin is missing, rather than falling back to a misleading "openai-compatible" error.
2. Improve the error message: when provider is "local" but the plugin is missing, say something like "Local embedding provider plugin (@openclaw/llama-cpp-provider) not installed. Run: openclaw plugins install clawhub:@openclaw/llama-cpp-provider" instead of the generic openai-compatible message.
3. Preserve or migrate the modelPath format across upgrades, or accept both hf: URI and filesystem path formats when matching against an existing index.
4. Make the CLI memory index command use gateway plugins (or at minimum, document that it doesn't and provide an alternative reindex path through the gateway).
5. Consider a post-upgrade check that validates the embedding provider is functional before marking the update complete.

Environment

  • OpenClaw: 2026.6.6 (upgraded from 2026.6.5)
  • OS: Ubuntu 22.04 (Linux 7.0.0-22-generic x64)
  • Node: 22.22.3
  • Local embedding model: embeddinggemma-300m-qat-Q8_0.gguf
  • node-llama-cpp 3.18.1 installed globally
  • Config: agents.defaults.memorySearch.provider: "local"

Steps to reproduce

See description

Expected behavior

See summary

Actual behavior

See summary

OpenClaw version

2026.6.5. & 2026.6.6

Operating system

Ubuntu 26.04 LTS

Install method

npm global

Model

various (chatgpt-5.5:codex / ollama-glm-5.1:cloud

Provider / routing chain

See summary

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

Affected memory

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingclawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.regressionBehavior that previously worked and now fails

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions