Skip to content

[Bug]: 2026.4.27 builtin memory can fail because plugin-runtime-deps snapshot misses sqlite-vec #74692

Description

@mozi1924

Summary

After upgrading to OpenClaw 2026.4.27, builtin memory/vector search can fail because the plugin runtime dependency snapshot under ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-*/node_modules does not contain sqlite-vec, even though the main global OpenClaw install does.

This breaks memory startup/search with:

[memory] sqlite-vec unavailable: Cannot find package 'sqlite-vec' imported from /Users/.../.openclaw/plugin-runtime-deps/openclaw-2026.4.27-.../dist/engine-storage-....js
Did you mean to import "sqlite-vec/index.cjs"?

Environment

  • OpenClaw: 2026.4.27
  • Host: macOS arm64
  • Install path: /opt/homebrew/lib/node_modules/openclaw
  • Runtime deps path: ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-*/
  • Memory backend: builtin

What I observed

The main OpenClaw install contains:

  • /opt/homebrew/lib/node_modules/openclaw/node_modules/sqlite-vec
  • /opt/homebrew/lib/node_modules/openclaw/node_modules/sqlite-vec-darwin-arm64

But the generated plugin runtime deps snapshot for 2026.4.27 did not contain those packages under:

  • ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-*/node_modules

That caused builtin memory/vector search to fail until the missing packages were manually linked into the runtime-deps snapshot.

Repro

  1. Upgrade to 2026.4.27
  2. Use builtin memory with vector search enabled
  3. Run memory startup/status/search
  4. Observe runtime error above
  5. Check runtime deps dir and note that sqlite-vec is missing there, while present in the main install

Expected

sqlite-vec should resolve correctly from the plugin runtime used by builtin memory on macOS arm64.

Actual

The runtime snapshot used by memory cannot import sqlite-vec and vector memory initialization/search fails.

Local workaround

I restored memory by manually linking the missing packages into the plugin runtime deps snapshot:

BASE="$HOME/.openclaw/plugin-runtime-deps/openclaw-2026.4.27-da6bdffc3d96/node_modules"
mkdir -p "$BASE"
ln -s /opt/homebrew/lib/node_modules/openclaw/node_modules/sqlite-vec "$BASE/sqlite-vec"
ln -s /opt/homebrew/lib/node_modules/openclaw/node_modules/sqlite-vec-darwin-arm64 "$BASE/sqlite-vec-darwin-arm64"

After that, openclaw memory status reported vector search as ready again:

Vector: ready
Vector dims: 2560
Vector path: /opt/homebrew/lib/node_modules/openclaw/node_modules/sqlite-vec-darwin-arm64/vec0.dylib

Extra note

In my case I also hit a separate local config/model-name mismatch at the same time (memorySearch.model still pointed at an old embedding model id while my embeddings server only exposed a new served model name), but that was independent of this sqlite-vec runtime packaging/resolution failure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions