-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
node:sqlite missing FTS5 module — memory search keyword fallback broken #62328
Copy link
Copy link
Open
BingqingLyu/openclaw
#2087Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper 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.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.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.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper 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.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.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
Priority
None yet
Problem
OpenClaw's memory search uses
node:sqlite(Node.js built-in SQLite). On Node.js v23.11.0, the built-in SQLite (v3.49.1) is not compiled withENABLE_FTS5, causing FTS5-based keyword search to fail silently:This means the keyword/BM25 fallback in hybrid memory search is completely non-functional. Only vector search works (when an embedding provider is configured).
Environment
node:sqlite)ENABLE_FTS5(verified viapragma compile_options)Steps to Reproduce
memorySearch.provider: "local"(or any provider)[memory] fts unavailable: no such module: fts5memory_searchreturnsmode: "hybrid"but FTS results are always emptySuggestion
A few possible approaches:
better-sqlite3as a fallback — it ships with a fully-compiled SQLite that includes FTS5 by defaultnode:sqliteon some Node.js builds may lack FTS5, and suggest users compile Node.js with--sqlite-enable-fts5(available since Node 23.x configure options)openclaw doctorWorkaround
Vector search (
provider: "local"with embeddinggemma GGUF) works fine as the primary search mode. FTS5 is only needed for pure keyword matching fallback.