-
-
Notifications
You must be signed in to change notification settings - Fork 79.1k
memory status always reports "Vector search: paused" with blank expected model (2026.6.1) #90413
Copy link
Copy link
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Summary
openclaw memory statusalways printsIndex identity: index was built for model <X>, expected(with a blank expected) andVector search: paused until memory is rebuilt, even immediately after a successfulopenclaw memory index --force.memory_searchtool calls returndisabled: true, error: "index metadata is missing"as a result.openclaw memory status --deepreports the system as healthy (Embeddings: ready,Vector store: ready,Semantic vectors: ready) — only the plain status path is broken.Version: OpenClaw 2026.6.1 (2e08f0f), installed via Homebrew on macOS 15.5 arm64.
Reproduction
Any agent with the default
agents.<id>.memorySearch.model(empty string"") and a working embedding provider whose adapter exposes a non-emptydefaultModel(e.g. OpenAItext-embedding-3-small) reproduces it.Root cause
In
MemoryIndexManager.resolveCurrentIndexIdentityState(dist/manager-*.js),configuredProvider.modelis assigned directly fromthis.settings.model:this.settings.modelis the empty string""by default (notundefinedor unset). It only gets resolved against the adapter'sdefaultModelduring provider initialization, which happens on the--deep/--indexpaths but not on the plainmemory statuspath (providerInitialized: false,this.provider === undefined).Result:
configuredProvider.model = "", identity validation comparesmeta.model ("text-embedding-3-small") !== "", mismatch declared, message printed with empty "expected".Empty string survives
??(nullish-coalescing); only||falls through. The existing code uses neither — direct assignment.Confirmed with diagnostic logging in a local patched build:
Suggested fix
Resolve the adapter's default model up front in
resolveCurrentIndexIdentityState(the helperresolveEmbeddingProviderFallbackModelalready exists in the same module and does exactly this):A symmetric guard in
refreshIndexIdentityDirtyfor the case wherethis.providerInitializedis true butthis.provider.modelis still falsy is also recommended:Verification after patching
openclaw memory statusno longer printsIndex identityorVector search: pausedlinesopenclaw memory search "<query>" --agent mainreturns semantic resultsmemory_searchMCP/tool calls succeed (in new sessions; existing session-cacheddisabledstate clears on next session boot)Happy to send a PR if useful — the change is two small edits in one file.