-
-
Notifications
You must be signed in to change notification settings - Fork 68.3k
mem0/SQLite bindings fail after 2026.3.1 update #31676
Description
Bug Report: mem0/SQLite bindings fail after 2026.3.1 update
Bug Type
- Regression (worked in previous version)
- Crash
- Behavior
Summary
After updating to OpenClaw 2026.3.1, the memory_search, memory_list, and memory_get tools fail with a native bindings error. The error shows jiti (the TypeScript transformer) looking for sqlite3 bindings in its own directory structure instead of resolving them correctly from the sqlite3 package.
Environment
- OpenClaw Version: 2026.3.1
- Node.js Version: v22.22.0
- npm Version: 10.9.4
- OS: Linux 6.18.7-76061807-generic (x64) - Pop!_OS
- Installation Method:
npm install -g openclaw
Steps to Reproduce
- Update to OpenClaw 2026.3.1:
npm update -g openclaw - Run any memory tool command, e.g.:
openclaw memory list- Or via agent:
memory_list(scope="long-term")
Expected Behavior
Memory tools should return stored memories without errors.
Actual Behavior
All memory operations fail with:
Memory list failed: Error: Could not locate the bindings file. Tried:
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/build/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/build/Debug/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/build/Release/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/out/Debug/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/Debug/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/out/Release/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/Release/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/build/default/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/compiled/22.22.0/linux/x64/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/addon-build/release/install-install/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/addon-build/debug/install-install/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/addon-build/default/install-install/node_sqlite3.node
→ /home/chris/.npm-global/lib/node_modules/openclaw/node_modules/jiti/lib/binding/node-v127-linux-x64/node_sqlite3.node
What I've Tried
-
npm rebuild sqlite3- rebuilt successfully, error persists -
npm rebuild better-sqlite3- rebuilt successfully, error persists -
npm rebuild- rebuilt all deps successfully, error persists - Fresh reinstall:
rm -rf node_modules/openclaw && npm install -g openclaw- error persists - Manual symlink of bindings to jiti directories - error persists
- Installing
sqlite3andmem0aipackages - error persists
Related Packages
The issue appears to be related to how jiti (v2.6.1) resolves native module bindings when transforming TypeScript code that imports sqlite3. The bindings file DOES exist at:
/home/chris/.npm-global/lib/node_modules/openclaw/node_modules/sqlite3/build/Release/node_sqlite3.node
But the bindings package is looking for it relative to jiti's module path instead of sqlite3's path.
Workaround
qmd (Query My Documents) is unaffected and works correctly. Users can use qmd for local memory retrieval:
qmd search "query"Possible Root Cause
The 2026.3.1 release includes several changes to jiti and module resolution. The error suggests that when jiti transforms the memory management code, the bindings package resolves the search path relative to jiti instead of the actual sqlite3 consumer.
Regression Note
This worked correctly in version 2026.2.26 prior to the update.
Additional Context
- The SQLite database file exists at
~/.openclaw/memory/main.sqlite(not corrupted) - Gateway restart does not resolve the issue
- qmd's sqlite3 usage (via better-sqlite3) works fine - only mem0 is affected