5.7 KiB
Common Issue Resolutions
Quick fixes for frequently encountered claude-mem problems.
Issue: Nothing is Remembered After /clear
Symptoms:
- Data doesn't persist across sessions
- Context is empty after
/clear - Search returns no results for past work
Root cause: Sessions are marked complete but data should persist. This suggests:
- Worker not processing observations
- Database not being written to
- Context hook not reading from database
Fix:
-
Verify worker is running:
pm2 jlist | grep claude-mem-worker -
Check database has recent observations:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT COUNT(*) FROM observations WHERE created_at > datetime('now', '-1 day');" -
Restart worker and start new session:
pm2 restart claude-mem-worker -
Create a test observation:
/skill version-bumpthen cancel -
Check if observation appears in viewer:
open http://127.0.0.1:37777 # Or manually check database: sqlite3 ~/.claude-mem/claude-mem.db "SELECT * FROM observations ORDER BY created_at DESC LIMIT 1;"
Issue: Viewer Empty After Every Claude Restart
Symptoms:
- Viewer shows no data at http://127.0.0.1:37777
- Stats endpoint returns all zeros
- Database appears empty in UI
Root cause:
- Database being recreated on startup (shouldn't happen)
- Worker reading from wrong database location
- Database permissions issue
Fix:
-
Check database file exists and has data:
ls -lh ~/.claude-mem/claude-mem.db sqlite3 ~/.claude-mem/claude-mem.db "SELECT COUNT(*) FROM observations;" -
Check file permissions:
ls -la ~/.claude-mem/claude-mem.db # Should be readable/writable by your user -
Verify worker is using correct database path in logs:
pm2 logs claude-mem-worker --lines 50 --nostream | grep "Database" -
Test viewer connection manually:
curl -s http://127.0.0.1:37777/api/stats # Should show non-zero counts if data exists
Issue: Old Memory in Claude
Symptoms:
- Context contains outdated observations
- Irrelevant past work appearing in sessions
- Context feels stale
Root cause: Context hook injecting stale observations
Fix:
-
Check the observation count setting:
grep CLAUDE_MEM_CONTEXT_OBSERVATIONS ~/.claude/settings.json -
Default is 50 observations - you can adjust this:
{ "env": { "CLAUDE_MEM_CONTEXT_OBSERVATIONS": "25" } } -
Check database for actual observation dates:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT created_at, project, title FROM observations ORDER BY created_at DESC LIMIT 10;" -
Consider filtering by project if working on multiple codebases
Issue: Worker Not Starting
Symptoms:
- PM2 shows worker as "stopped" or "errored"
- Health check fails
- Viewer not accessible
Root cause:
- Port already in use
- PM2 not installed or not in PATH
- Missing dependencies
Fix:
-
Try manual worker start to see error:
cd ~/.claude/plugins/marketplaces/thedotmack/ node plugin/scripts/worker-service.cjs # Should start server on port 37777 or show error -
If port in use, change it:
mkdir -p ~/.claude-mem echo '{"env":{"CLAUDE_MEM_WORKER_PORT":"37778"}}' > ~/.claude-mem/settings.json -
If dependencies missing:
cd ~/.claude/plugins/marketplaces/thedotmack/ npm install pm2 start ecosystem.config.cjs
Issue: Search Results Empty
Symptoms:
- Search skill returns no results
- API endpoints return empty arrays
- Know there's data but can't find it
Root cause:
- FTS5 tables not synchronized
- Wrong project filter
- Database not being queried correctly
Fix:
-
Check if observations exist in database:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT COUNT(*) FROM observations;" -
Check FTS5 table sync:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT COUNT(*) FROM observations_fts;" # Should match observation count -
Try search via API directly:
curl "http://127.0.0.1:37777/api/search/observations?q=test&format=index" -
If FTS5 out of sync, restart worker (triggers reindex):
pm2 restart claude-mem-worker
Issue: Port Conflicts
Symptoms:
- Worker won't start
- Error: "EADDRINUSE: address already in use"
- Health check fails
Fix:
-
Check what's using port 37777:
lsof -i :37777 -
Either kill the conflicting process or change claude-mem port:
mkdir -p ~/.claude-mem echo '{"env":{"CLAUDE_MEM_WORKER_PORT":"37778"}}' > ~/.claude-mem/settings.json pm2 restart claude-mem-worker
Issue: Database Corrupted
Symptoms:
- SQLite errors in logs
- Worker crashes on startup
- Queries fail
Fix:
-
Backup the database:
cp ~/.claude-mem/claude-mem.db ~/.claude-mem/claude-mem.db.backup -
Try to repair:
sqlite3 ~/.claude-mem/claude-mem.db "PRAGMA integrity_check;" -
If repair fails, recreate (loses data):
rm ~/.claude-mem/claude-mem.db pm2 restart claude-mem-worker # Worker will create new database
Prevention Tips
Keep claude-mem healthy:
- Regularly check viewer UI to see if observations are being captured
- Monitor database size (shouldn't grow unbounded)
- Update plugin when new versions are released
- Keep Claude Code updated
Performance tuning:
- Adjust
CLAUDE_MEM_CONTEXT_OBSERVATIONSif context is too large/small - Use
/clearto mark sessions complete and start fresh - Use search skill to query specific memories instead of loading everything