- Created comprehensive installation guide detailing quick start, system requirements, and advanced installation steps. - Developed troubleshooting guide addressing common issues with worker service, hooks, database, and search tools. - Introduced getting started documentation explaining automatic operation, session summaries, and context injection. - Added detailed usage instructions for MCP search tools, including query examples and advanced filtering techniques.
12 KiB
Troubleshooting Guide
Worker Service Issues
Worker Service Not Starting
Symptoms: Worker doesn't start, or pm2 status shows no processes.
Solutions:
-
Check if PM2 is running:
pm2 status -
Try starting manually:
npm run worker:start -
Check worker logs for errors:
npm run worker:logs -
Full reset:
pm2 delete claude-mem-worker npm run worker:start -
Verify PM2 is installed:
which pm2 npm list pm2
Port Allocation Failed
Symptoms: Worker fails to start with "port already in use" error.
Solutions:
-
Check if port 37777 is in use:
lsof -i :37777 -
Kill process using the port:
kill -9 $(lsof -t -i:37777) -
Or use a different port:
export CLAUDE_MEM_WORKER_PORT=38000 npm run worker:restart -
Verify new port:
cat ~/.claude-mem/worker.port
Worker Keeps Crashing
Symptoms: Worker restarts repeatedly, PM2 shows high restart count.
Solutions:
-
Check error logs:
npm run worker:logs -
Check memory usage:
pm2 status -
Increase memory limit in
ecosystem.config.cjs:{ max_memory_restart: '2G' // Increase if needed } -
Check database for corruption:
sqlite3 ~/.claude-mem/claude-mem.db "PRAGMA integrity_check;"
Worker Not Processing Observations
Symptoms: Observations saved but not processed, no summaries generated.
Solutions:
-
Check worker is running:
npm run worker:status -
Check worker logs:
npm run worker:logs -
Verify database has observations:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT COUNT(*) FROM observations;" -
Restart worker:
npm run worker:restart
Hook Issues
Hooks Not Firing
Symptoms: No context appears, observations not saved.
Solutions:
-
Verify hooks are configured:
cat plugin/hooks/hooks.json -
Test hooks manually:
# Test context hook echo '{"session_id":"test-123","cwd":"'$(pwd)'","source":"startup"}' | node plugin/scripts/context-hook.js -
Check hook permissions:
ls -la plugin/scripts/*.js -
Verify hooks.json is valid JSON:
cat plugin/hooks/hooks.json | jq .
Context Not Appearing
Symptoms: No session context when Claude starts.
Solutions:
-
Check if summaries exist:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT COUNT(*) FROM session_summaries;" -
View recent sessions:
npm run test:context:verbose -
Check database integrity:
sqlite3 ~/.claude-mem/claude-mem.db "PRAGMA integrity_check;" -
Manually test context hook:
npm run test:context
Hooks Timeout
Symptoms: Hook execution times out, errors in Claude Code.
Solutions:
-
Increase timeout in
plugin/hooks/hooks.json:{ "timeout": 180 // Increase from 120 } -
Check worker is running (prevents timeout waiting for worker):
npm run worker:status -
Check database size (large database = slow queries):
ls -lh ~/.claude-mem/claude-mem.db -
Optimize database:
sqlite3 ~/.claude-mem/claude-mem.db "VACUUM;"
Dependencies Not Installing
Symptoms: SessionStart hook fails with "module not found" errors.
Solutions:
-
Manually install dependencies:
cd ~/.claude/plugins/marketplaces/thedotmack npm install -
Check npm is available:
which npm npm --version -
Check package.json exists:
ls -la ~/.claude/plugins/marketplaces/thedotmack/package.json
Database Issues
Database Locked
Symptoms: "database is locked" errors in logs.
Solutions:
-
Close all connections:
pm2 stop claude-mem-worker -
Check for stale locks:
lsof ~/.claude-mem/claude-mem.db -
Kill processes holding locks:
kill -9 <PID> -
Restart worker:
npm run worker:start
Database Corruption
Symptoms: Integrity check fails, weird errors.
Solutions:
-
Check database integrity:
sqlite3 ~/.claude-mem/claude-mem.db "PRAGMA integrity_check;" -
Backup database:
cp ~/.claude-mem/claude-mem.db ~/.claude-mem/claude-mem.db.backup -
Try to repair:
sqlite3 ~/.claude-mem/claude-mem.db "VACUUM;" -
Nuclear option - recreate database:
rm ~/.claude-mem/claude-mem.db npm run worker:start # Will recreate schema
FTS5 Search Not Working
Symptoms: Search returns no results, FTS5 errors.
Solutions:
-
Check FTS5 tables exist:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT name FROM sqlite_master WHERE type='table' AND name LIKE '%_fts';" -
Rebuild FTS5 tables:
sqlite3 ~/.claude-mem/claude-mem.db " INSERT INTO observations_fts(observations_fts) VALUES('rebuild'); INSERT INTO session_summaries_fts(session_summaries_fts) VALUES('rebuild'); INSERT INTO user_prompts_fts(user_prompts_fts) VALUES('rebuild'); " -
Check triggers exist:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT name FROM sqlite_master WHERE type='trigger';"
Database Too Large
Symptoms: Slow performance, large database file.
Solutions:
-
Check database size:
ls -lh ~/.claude-mem/claude-mem.db -
Vacuum database:
sqlite3 ~/.claude-mem/claude-mem.db "VACUUM;" -
Delete old sessions:
sqlite3 ~/.claude-mem/claude-mem.db " DELETE FROM observations WHERE created_at_epoch < $(date -v-30d +%s); DELETE FROM session_summaries WHERE created_at_epoch < $(date -v-30d +%s); DELETE FROM sdk_sessions WHERE created_at_epoch < $(date -v-30d +%s); " -
Rebuild FTS5 after deletion:
sqlite3 ~/.claude-mem/claude-mem.db " INSERT INTO observations_fts(observations_fts) VALUES('rebuild'); INSERT INTO session_summaries_fts(session_summaries_fts) VALUES('rebuild'); "
MCP Search Issues
Search Tools Not Available
Symptoms: MCP search tools not visible in Claude Code.
Solutions:
-
Check MCP configuration:
cat plugin/.mcp.json -
Verify search server is built:
ls -l plugin/scripts/search-server.js -
Rebuild if needed:
npm run build -
Restart Claude Code
Search Returns No Results
Symptoms: Valid queries return empty results.
Solutions:
-
Check database has data:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT COUNT(*) FROM observations;" -
Verify FTS5 tables populated:
sqlite3 ~/.claude-mem/claude-mem.db "SELECT COUNT(*) FROM observations_fts;" -
Test simple query:
# In Claude Code search_observations with query="test" -
Check query syntax:
# Bad: Special characters search_observations with query="[test]" # Good: Simple words search_observations with query="test"
Token Limit Errors
Symptoms: "exceeded token limit" errors from MCP.
Solutions:
-
Use index format:
search_observations with query="..." and format="index" -
Reduce limit:
search_observations with query="..." and limit=3 -
Use filters to narrow results:
search_observations with query="..." and type="decision" and limit=5 -
Paginate results:
# First page search_observations with query="..." and limit=5 and offset=0 # Second page search_observations with query="..." and limit=5 and offset=5
Performance Issues
Slow Context Injection
Symptoms: SessionStart hook takes too long.
Solutions:
-
Reduce context sessions:
// In src/hooks/context.ts const CONTEXT_SESSIONS = 5; // Reduce from 10 -
Optimize database:
sqlite3 ~/.claude-mem/claude-mem.db " ANALYZE; VACUUM; " -
Add indexes (if missing):
sqlite3 ~/.claude-mem/claude-mem.db " CREATE INDEX IF NOT EXISTS idx_sessions_project_created ON sdk_sessions(project, created_at_epoch DESC); "
Slow Search Queries
Symptoms: MCP search tools take too long.
Solutions:
- Use more specific queries
- Add date range filters
- Add type/concept filters
- Reduce result limit
- Use index format instead of full format
High Memory Usage
Symptoms: Worker uses too much memory, frequent restarts.
Solutions:
-
Check current usage:
pm2 status -
Increase memory limit:
// In ecosystem.config.cjs { max_memory_restart: '2G' } -
Restart worker:
npm run worker:restart -
Clean up old data (see "Database Too Large" above)
Installation Issues
Plugin Not Found
Symptoms: /plugin install claude-mem fails.
Solutions:
-
Add marketplace first:
/plugin marketplace add thedotmack/claude-mem -
Then install:
/plugin install claude-mem -
Verify installation:
ls -la ~/.claude/plugins/marketplaces/thedotmack/
Build Failures
Symptoms: npm run build fails.
Solutions:
-
Clean and reinstall:
rm -rf node_modules package-lock.json npm install -
Check Node.js version:
node --version # Should be >= 18.0.0 -
Check for TypeScript errors:
npx tsc --noEmit
Missing Dependencies
Symptoms: "Cannot find module" errors.
Solutions:
-
Install dependencies:
npm install -
Check package.json:
cat package.json -
Verify node_modules exists:
ls -la node_modules/
Debugging
Enable Verbose Logging
export DEBUG=claude-mem:*
npm run worker:restart
npm run worker:logs
Check Correlation IDs
Trace observations through the pipeline:
sqlite3 ~/.claude-mem/claude-mem.db "
SELECT correlation_id, tool_name, created_at
FROM observations
WHERE session_id = 'YOUR_SESSION_ID'
ORDER BY created_at;
"
Inspect Worker State
# Check if worker is running
pm2 status
# View logs
pm2 logs claude-mem-worker
# Check port file
cat ~/.claude-mem/worker.port
# Test worker health
curl http://localhost:37777/health
Database Inspection
sqlite3 ~/.claude-mem/claude-mem.db
# View schema
.schema
# Check table counts
SELECT 'sessions', COUNT(*) FROM sdk_sessions
UNION ALL
SELECT 'observations', COUNT(*) FROM observations
UNION ALL
SELECT 'summaries', COUNT(*) FROM session_summaries
UNION ALL
SELECT 'prompts', COUNT(*) FROM user_prompts;
# View recent activity
SELECT created_at, tool_name FROM observations ORDER BY created_at DESC LIMIT 10;
Common Error Messages
"Worker service not responding"
Cause: Worker not running or port mismatch.
Solution: Restart worker with npm run worker:restart.
"Database is locked"
Cause: Multiple processes accessing database.
Solution: Stop worker, kill stale processes, restart.
"FTS5: syntax error"
Cause: Invalid search query syntax.
Solution: Use simpler query, avoid special characters.
"SQLITE_CANTOPEN"
Cause: Database file permissions or missing directory.
Solution: Check ~/.claude-mem/ exists and is writable.
"Module not found"
Cause: Missing dependencies.
Solution: Run npm install.
Getting Help
If none of these solutions work:
-
Check logs:
npm run worker:logs -
Create issue: GitHub Issues
- Include error messages
- Include relevant logs
- Include steps to reproduce
-
Check existing issues: Someone may have already solved your problem
Next Steps
- Configuration - Customize Claude-Mem
- Development - Build from source
- Architecture - Understand the system