You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug: PR #541 fix is incomplete — plugin still requires embedding config
Problem
After PR #541 was merged, the plugin still fails to initialize with OpenClaw 2026.4.5 when no embedding API key is provided:
memory-lancedb-pro: embedding: must have required property embedding
Root Cause
PR #541 only updated openclaw.plugin.json (removed top-level required: ["embedding"]), but did NOT update the TypeScript source code that performs the actual runtime validation.
In index.ts, the code explicitly requires config.embedding:
// Line 266thrownewError("embedding.apiKey is empty");// Lines 1655–1671 — config.embedding is accessed directly without null checksconfig.embedding.modelconfig.embedding.apiKeyconfig.embedding.dimensionsconfig.embedding.baseURL// ... etc
Additional Context: "Works on my machine" bug
This is likely a classic developer environment bug:
The plugin authors had their own embedding API key (Jina / OpenAI) when developing and testing
They always had config.embedding populated, so the code path config.embedding.apiKey always worked
They never tested the "no embedding config" scenario because they never ran the plugin without one
Plugin code layer (index.ts runtime) → NOT fixed ❌
Users relying on local embedding (Ollama, etc.) without external API keys will hit the plugin code crash, while developers with API keys never noticed.
Expected Behavior
The plugin should initialize with plugins.entries.memory-lancedb-pro: { enabled: true } and gracefully handle the absence of an embedding config — either falling back to memory-core builtin embedding or skipping vector search.
Actual Behavior
The plugin throws at initialization:
Error: embedding.apiKey is empty
Because config.embedding is undefined when only { enabled: true } is provided.
Suggested Fix
In index.ts, make embedding truly optional:
// Change Line 266 — make it a warning, not a throwif(!config.embedding?.apiKey){// fallback: use memory-core builtin embedding or skip}// Add optional chaining throughout (lines 1655–1671)config.embedding?.modelconfig.embedding?.apiKeyconfig.embedding?.dimensions// etc.
Bug: PR #541 fix is incomplete — plugin still requires embedding config
Problem
After PR #541 was merged, the plugin still fails to initialize with OpenClaw 2026.4.5 when no embedding API key is provided:
Root Cause
PR #541 only updated
openclaw.plugin.json(removed top-levelrequired: ["embedding"]), but did NOT update the TypeScript source code that performs the actual runtime validation.In
index.ts, the code explicitly requiresconfig.embedding:Additional Context: "Works on my machine" bug
This is likely a classic developer environment bug:
config.embeddingpopulated, so the code pathconfig.embedding.apiKeyalways workedconfig.embeddingis undefinedThis is two layers of validation:
Users relying on local embedding (Ollama, etc.) without external API keys will hit the plugin code crash, while developers with API keys never noticed.
Expected Behavior
The plugin should initialize with
plugins.entries.memory-lancedb-pro: { enabled: true }and gracefully handle the absence of an embedding config — either falling back to memory-core builtin embedding or skipping vector search.Actual Behavior
The plugin throws at initialization:
Because
config.embeddingis undefined when only{ enabled: true }is provided.Suggested Fix
In
index.ts, make embedding truly optional:Environment
Config
{ "plugins": { "entries": { "memory-lancedb-pro": { "enabled": true } } } }Related