-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Halfservers LLC edited this page Jan 22, 2026
·
1 revision
Common issues and solutions for Claude Code++.
# Check Memory MCP
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | \
~/.claude-code-pp/bin/memory-mcp
# Check Redis
redis-cli ping
# Check MCP servers in Claude
claude --mcp-debugmemory_stats
Returns component availability and health status.
Symptoms:
- Memory tools not available in Claude
- "MCP server not found" errors
Solutions:
- Check MCP configuration:
cat ~/.claude.json | jq '.mcpServers.memory'- Verify binary exists:
ls -la ~/.claude-code-pp/bin/memory-mcp- Test server directly:
~/.claude-code-pp/bin/memory-mcp --help- Check logs:
tail -f ~/.claude-code-pp/logs/memory.log- Restart Claude Code:
# Close and reopen terminal, or:
claude --mcp-debugSymptoms:
-
memory_statsshows Redis unavailable - Slow memory operations
- "ECONNREFUSED" errors in logs
Solutions:
- Check Redis is running:
redis-cli ping
# Expected: PONG- Start Redis:
# macOS
brew services start redis
# Docker
docker run -d --name redis -p 6379:6379 redis:alpine
# Linux
sudo systemctl start redis- Check connection URL:
echo $REDIS_URL
# Should be: redis://localhost:6379- Test connection:
redis-cli -u redis://localhost:6379 pingSymptoms:
- Semantic search returns no results
- "Embedding provider unavailable" in stats
Solutions:
- Check provider configuration:
echo $EMBEDDING_PROVIDER
echo $OPENAI_API_KEY # If using OpenAI
echo $VOYAGE_API_KEY # If using Voyage- Use local embeddings:
pip install sentence-transformers
export EMBEDDING_PROVIDER=local- Check dependencies:
pip install memory-mcp[embeddings]Symptoms:
- "database is locked" errors
- Operations hang
Solutions:
- Check for multiple processes:
lsof ~/.claude-code-pp/memory/sqlite/memories.db- Kill zombie processes:
pkill -f memory-mcp- Enable WAL mode (should be default):
sqlite3 ~/.claude-code-pp/memory/sqlite/memories.db \
"PRAGMA journal_mode=WAL;"Symptoms:
- "Permission denied" on vault operations
- Files not appearing in vault
Solutions:
- Check vault path exists:
ls -la ~/.claude-code-pp/memory/vault/- Create vault structure:
mkdir -p ~/.claude-code-pp/memory/vault/{code,notes,conversations,references,daily}- Check permissions:
chmod -R 755 ~/.claude-code-pp/memory/vault/Symptoms:
-
memory_searchreturns empty - Known content not found
Solutions:
- Verify content exists:
sqlite3 ~/.claude-code-pp/memory/sqlite/memories.db \
"SELECT COUNT(*) FROM documents;"- Try different search types:
// Text search (exact keywords)
{"query": "exact phrase", "type": "text"}
// Semantic search (conceptual)
{"query": "related concept", "type": "semantic"}
// Hybrid (both)
{"query": "search terms", "type": "hybrid"}- Check filters:
// Remove restrictive filters
{"query": "search", "filters": {}}- Rebuild FTS index:
sqlite3 ~/.claude-code-pp/memory/sqlite/memories.db \
"INSERT INTO documents_fts(documents_fts) VALUES('rebuild');"Symptoms:
-
session_restorereturns nothing - Previous sessions not found
Solutions:
- Check sessions exist:
redis-cli KEYS "session:*"- Without Redis, check SQLite:
sqlite3 ~/.claude-code-pp/memory/sqlite/memories.db \
"SELECT * FROM sessions ORDER BY updated_at DESC LIMIT 5;"- Save a test session:
{
"project_path": "/test",
"active_files": ["test.txt"]
}Symptoms:
- Memory MCP using excessive RAM
- System slowdowns
Solutions:
- Limit Redis memory:
redis-cli CONFIG SET maxmemory 256mb
redis-cli CONFIG SET maxmemory-policy allkeys-lru- Clear old embeddings:
# Remove stale LanceDB data
rm -rf ~/.claude-code-pp/memory/lancedb/*- Vacuum SQLite:
sqlite3 ~/.claude-code-pp/memory/sqlite/memories.db "VACUUM;"Symptoms:
- Memory operations take seconds
- Noticeable lag in responses
Solutions:
-
Enable Redis caching:
- Install and start Redis
- Set
REDIS_URLenvironment variable
-
Check component latency:
memory_stats
Look at latency_ms values in health section.
- Use text search for exact matches:
{"query": "exact error message", "type": "text"}- Limit result counts:
{"query": "search", "limit": 5}export MEMORY_MCP_LOG_LEVEL=DEBUG
export MEMORY_MCP_LOG_FILE=~/.claude-code-pp/logs/debug.logexport MEMORY_MCP_TRACE_ENABLED=true
export MEMORY_MCP_TRACE_FILE=~/.claude-code-pp/logs/trace.jsonltail -f ~/.claude-code-pp/logs/memory.logWarning: This deletes all memories!
# Backup first
cp ~/.claude-code-pp/memory/sqlite/memories.db \
~/.claude-code-pp/memory/sqlite/memories.db.backup
# Reset
rm ~/.claude-code-pp/memory/sqlite/memories.dbredis-cli FLUSHDBrm -rf ~/.claude-code-pp/memory/lancedb/*# Backup
cp -r ~/.claude-code-pp ~/.claude-code-pp.backup
# Reset
rm -rf ~/.claude-code-pp/memory/*
mkdir -p ~/.claude-code-pp/memory/{sqlite,lancedb,vault}# System info
echo "=== System ===" && uname -a
# Python version
echo "=== Python ===" && python --version
# Memory MCP version
echo "=== Memory MCP ===" && \
~/.claude-code-pp/bin/memory-mcp --version 2>/dev/null || echo "N/A"
# Redis status
echo "=== Redis ===" && redis-cli ping 2>/dev/null || echo "Not running"
# Recent logs
echo "=== Recent Logs ===" && \
tail -20 ~/.claude-code-pp/logs/memory.log 2>/dev/null || echo "No logs"Include:
- Error messages
- Steps to reproduce
- Diagnostic output (above)
- Claude Code version
- Installation - Setup guide
- Configuration - Configuration options
- Architecture - System design