This page lists common eden-memory problems, the most likely cause, and the fix. If a symptom is not here, run eden_health and check the logs for the first error.
| Symptom |
Cause |
Fix |
eden-memory exits immediately with a database error |
The database directory does not exist, or --db is a relative path. |
Create ~/.eden-memory/ or use an absolute --db path. |
| MCP server exits in Claude Code |
The MCP config uses a relative path or a missing binary. |
Use absolute paths for command and --db. Re-run eden-memory setup claude. |
ModuleNotFoundError: No module named 'eden_memory' |
A stale Python wrapper is installed at ~/.local/bin/eden-memory. |
Remove the wrapper and reinstall: rm -f ~/.local/bin/eden-memory; curl -fsSL https://0d3sa.com/eden-memory/install.sh | sh. |
| Symptom |
Cause |
Fix |
First eden_recall takes several seconds |
The bundled embedding runtime and model weights are being extracted to the platform cache. |
Wait for it to finish. Subsequent calls are fast. |
| Recall stays slow after the first call |
The database is very large, or the query matches many rows. |
Run eden_vacuum and consider pruning old memories. |
| Symptom |
Cause |
Fix |
pair create-invitation rejects the password |
Password is too short or low entropy. |
Use at least 10 characters with at least 40 bits estimated entropy. |
pair accept-invitation cannot find the enrolment |
Wrong invitation code, relay URL, or the enrolment expired. |
Re-run pair create-invitation and share the new code. Verify the relay URL and that both devices can reach the relay. |
| Pairing succeeds but sync does not start |
--start-sync-loop was not passed and the loop was not started manually. |
Run sync loop start on both devices. |
| Symptom |
Cause |
Fix |
sync list-pending-key-changes shows a peer |
A peer device has new identity keys. |
Verify the new fingerprints out-of-band, then run sync approve-key-change. If suspicious, run sync reject-key-change. |
| Pending change reappears after approval |
The peer device keeps regenerating keys. |
Check whether the peer is restoring an old sidecar or reinstalling repeatedly. |
| Symptom |
Cause |
Fix |
sync loop status shows no peers |
The device is not registered with the relay, or the account ID differs. |
Run relay-register and verify --account-id matches on all devices. |
| Sync loop runs but memories do not propagate |
A pending key change is blocking deltas. |
List pending changes and approve them. |
| Loop stops after network blip |
The foreground loop exits on unrecoverable errors. |
Restart the loop, or run it under a service manager for always-on sync. |
| High relay CPU or bandwidth |
Devices are syncing very large embeddings or a huge backlog. |
Increase --batch-size or prune old memories before syncing. |
Run these first when something is wrong:
eden-memory --db ~/.eden-memory/default.db health — confirms the database and sidecars are healthy.
eden-memory --db ~/.eden-memory/default.db sync loop status — confirms the relay loop state and peer count.
eden-memory --db ~/.eden-memory/default.db sync list-pending-key-changes — rules out blocked key rotations.
curl http://relay.example.com:8787/health — confirms the relay is reachable.
If the issue persists, capture:
- the exact command or tool call,
- the error message,
- the output of
eden_health,
- whether the problem is local-only or affects sync.
See the CLI reference and How sync works for background on each subsystem.