-
-
Notifications
You must be signed in to change notification settings - Fork 69.5k
Memory Search FTS5 unavailable on Windows due to node:sqlite missing FTS5 module #50453
Description
Problem
On Windows, the Memory Search FTS5 (Full-Text Search) feature is unavailable because Node.js precompiled binaries for Windows do not include the FTS5 module in node:sqlite.
Investigation
Node.js Source Configuration
Node.js sqlite.gyp includes SQLITE_ENABLE_FTS5:
'SQLITE_ENABLE_FTS5',
'SQLITE_ENABLE_FTS3',
Windows Precompiled Binary
Testing on Node.js v22.14.0 (Windows):
SQLite Version: 3.47.2
FTS3 enabled: NO
FTS5 enabled: NO
Total compile options: 41
FTS5 test: FAILED - "no such module: fts5"
OpenClaw Memory Status
openclaw memory status --deep
...
FTS: unavailable
FTS error: no such module: fts5
better-sqlite3 Test
Installed better-sqlite3 and tested:
SQLite Version: 3.51.3
FTS5 support: YES
better-sqlite3 CAN read OpenClaw's memory database and supports FTS5.
Impact
- Vector search works correctly ✅
- FTS (Full-Text Search) is unavailable ❌
- Hybrid search mode falls back to vector-only
Environment
- OS: Windows 11 (NT 10.0.26200)
- Node.js: v22.14.0
- OpenClaw: 2026.3.11
Suggested Solutions
-
Add better-sqlite3 backend option: Allow users to configure OpenClaw to use
better-sqlite3instead ofnode:sqlite, which includes FTS5 by default. -
Fallback detection: Detect when FTS5 is unavailable and provide a clear warning with suggested actions.
-
Documentation update: Document this Windows limitation and provide installation instructions for better-sqlite3 as an alternative.
Workaround
Current workaround options:
- Use QMD backend (
memory.backend = "qmd") - Accept vector-only search (current behavior)
Related
- Node.js issue: Windows precompiled binaries don't match source configuration for SQLite extensions