5.5 KiB
🚨 MusicBrainz Cleaner Troubleshooting Guide
This guide documents common issues encountered when starting and running the MusicBrainz cleaner, along with their solutions.
📋 Key Files for New Sessions
When starting a new chat session, reference these files in order:
README.md- Quick start guide and basic usagePRD.md- Technical specifications and requirementsSETUP.md- Detailed setup instructionsTROUBLESHOOTING.md- This file - common issues and solutionsstart_services.sh- Automated service startup scriptrestart_services.sh- Quick restart script for after reboots
Quick Diagnostic Commands
# Check if Docker is running
docker --version
# Check container status
cd ../musicbrainz-docker && docker-compose ps
# Check database logs
docker-compose logs db | tail -10
# Check web server logs
docker-compose logs musicbrainz | tail -10
# Test web server response
curl -s http://localhost:5001 | head -5
# Test database connection
docker-compose exec db psql -U musicbrainz -d musicbrainz_db -c "SELECT COUNT(*) FROM artist;"
# Test cleaner connection
cd ../musicbrainz-cleaner && docker-compose run --rm musicbrainz-cleaner python3 -c "from src.api.database import MusicBrainzDatabase; db = MusicBrainzDatabase(); print('Connection result:', db.connect())"
Common Issues & Solutions
🚫 Issue 1: Database Connection Refused
Error Message:
Connection error: connection to server at "172.18.0.2", port 5432 failed: Connection refused
Root Cause: Database container not fully initialized or wrong host configuration
Solutions:
-
Wait for database initialization:
cd ../musicbrainz-docker docker-compose logs db | grep "database system is ready" -
Fix host configuration in database.py:
# Change this line in src/api/database.py: host='172.18.0.2' # ❌ Wrong host='db' # ✅ Correct -
Verify database is ready:
docker-compose exec db psql -U musicbrainz -d musicbrainz_db -c "SELECT COUNT(*) FROM artist;"
🚫 Issue 2: Test Shows 0% Success Rate
Symptoms: Test script reports 0% success despite finding artists in logs
Root Cause: Test script logic error - checking 'mbid' in result where result is a tuple
Solution: Fix test script to extract song dictionary from tuple:
# Wrong:
artist_found = 'mbid' in result
# Correct:
cleaned_song, success = result
artist_found = 'mbid' in cleaned_song
🚫 Issue 3: Port Already in Use
Error Message:
ports are not available: exposing port TCP 0.0.0.0:5000 ... bind: address already in use
Solution:
# Kill process using port 5000
lsof -ti:5000 | xargs kill -9
# Or use alternative port
MUSICBRAINZ_WEB_SERVER_PORT=5001 docker-compose up -d
🚫 Issue 4: Container Name Conflicts
Error Message:
Conflict. The container name ... is already in use
Solution:
# Stop and remove existing containers
docker-compose down
# Force remove specific container if needed
docker rm -f <container_name>
# Restart services
docker-compose up -d
🚫 Issue 5: Docker Not Running
Error Message:
Cannot connect to the Docker daemon
Solution:
# Start Docker Desktop
open -a Docker
# Wait for Docker to start, then restart services
./restart_services.sh
🚫 Issue 6: API Returns Empty Results
Symptoms: API calls return empty results even though database has data
Root Cause: MusicBrainz web server not fully initialized
Solution:
# Wait for web server to be ready
sleep 60
# Test API response
curl -s "http://localhost:5001/ws/2/artist/?query=name:The%20Beatles&fmt=json"
Startup Checklist
Before running any tests, verify:
- ✅ Docker Desktop is running
- ✅ All containers are up:
docker-compose ps - ✅ Database is ready:
docker-compose logs db | grep "ready" - ✅ Web server responds:
curl -s http://localhost:5001 - ✅ Database has data: Check artist count in database
- ✅ Cleaner can connect: Test database connection in cleaner
Performance Issues
Slow Processing
- Cause: Database queries taking too long
- Solution: Ensure database has proper indexes and is fully loaded
Memory Issues
- Cause: Docker Desktop memory allocation too low
- Solution: Increase Docker Desktop memory to 8GB+
Platform Warnings
- Cause: Apple Silicon (M1/M2) platform mismatch
- Solution: These warnings can be ignored - services work correctly
Recovery Procedures
Complete Reset
# Stop all services
cd ../musicbrainz-docker && docker-compose down
# Remove all containers and volumes (⚠️ WARNING: This deletes data)
docker-compose down -v
# Restart from scratch
./start_services.sh
Quick Restart
# Quick restart (preserves data)
./restart_services.sh
Getting Help
If you encounter issues not covered in this guide:
- Check the logs:
docker-compose logs -f - Verify system requirements are met
- Try the complete reset procedure
- Check the main README.md for additional troubleshooting steps
Prevention Tips
- Always use the startup scripts (
start_services.shorrestart_services.sh) - Wait for services to fully initialize before running tests
- Use the startup checklist before running any tests
- Keep Docker Desktop memory allocation at 8GB or higher
- Use port 5001 if port 5000 is busy