Troubleshooting Guide
October 13, 2025 ยท View on GitHub
This guide helps you diagnose and resolve common issues with ListSync. Follow the steps systematically for the best results.
๐ Table of Contents
- Quick Diagnostics
- Common Issues
- Connection Problems
- Sync Issues
- Performance Problems
- Web Interface Issues
- List Provider Issues
- Docker-Specific Issues
- Manual Installation Issues
- Debugging Tools
- Getting Help
๐ Quick Diagnostics
Diagnostic Decision Tree
flowchart TD
Start[Problem with ListSync?] --> CheckType{What's the issue?}
CheckType -->|Can't access dashboard| WebIssue[Web Interface Problem]
CheckType -->|Sync not working| SyncIssue[Sync Problem]
CheckType -->|Can't connect| ConnIssue[Connection Problem]
CheckType -->|Slow performance| PerfIssue[Performance Problem]
WebIssue --> CheckPort{Port 3222 accessible?}
CheckPort -->|No| FixPort[Check port mapping<br/>& firewall]
CheckPort -->|Yes| CheckContainer{Container running?}
CheckContainer -->|No| StartContainer[Start container:<br/>docker-compose up -d]
CheckContainer -->|Yes| CheckLogs[Check frontend logs]
SyncIssue --> CheckLists{Lists configured?}
CheckLists -->|No| AddLists[Add lists via<br/>web UI or .env]
CheckLists -->|Yes| CheckOverseerr{Overseerr connected?}
CheckOverseerr -->|No| FixConnection[Fix connection<br/>see Connection Problems]
CheckOverseerr -->|Yes| CheckItems[Check for errors<br/>in specific items]
ConnIssue --> TestAPI{API responds?}
TestAPI -->|No| CheckService[Check if services<br/>are running]
TestAPI -->|Yes| CheckCreds{Credentials valid?}
CheckCreds -->|No| UpdateCreds[Update API key<br/>and URL in .env]
CheckCreds -->|Yes| CheckNetwork[Check network<br/>& firewall settings]
PerfIssue --> CheckResources{High resource usage?}
CheckResources -->|Yes| OptimizeResources[Reduce sync interval<br/>or list sizes]
CheckResources -->|No| CheckDatabase[Check database<br/>for issues]
style Start fill:#4CAF50
style FixPort fill:#2196F3
style StartContainer fill:#2196F3
style AddLists fill:#2196F3
style FixConnection fill:#FF9800
style UpdateCreds fill:#2196F3
style OptimizeResources fill:#2196F3
Health Check Checklist
Run these quick checks to identify the issue category:
# 1. Check system health
curl http://localhost:4222/api/system/health
# 2. Check Docker containers (if using Docker)
docker-compose ps
# 3. Check logs for errors
docker-compose logs --tail=50 listsync-full
# 4. Verify Overseerr connection
curl -H "X-Api-Key: your-api-key" http://your-overseerr-url/api/v1/status
Status Indicators
| Component | Healthy | Unhealthy | Check |
|---|---|---|---|
| Database | โ Connected | โ Connection failed | File exists, writable |
| Process | โ Running | โ Not running | ListSync process active |
| Overseerr | โ Connected | โ Connection failed | API key valid, URL accessible |
| Web UI | โ Accessible | โ Not loading | Port 3222 accessible |
| API | โ Responding | โ Not responding | Port 4222 accessible |
๐จ Common Issues
"No lists configured" Error
Symptoms: Sync fails with "No lists configured" message
Causes:
- Environment variables not set
- Database not properly initialized
- Configuration file missing
Solutions:
-
Check environment variables:
# Verify lists are configured echo $IMDB_LISTS echo $TRAKT_LISTS -
Add lists via web interface:
- Go to http://localhost:3222/dashboard/lists
- Click "Add New List"
- Enter your list details
-
Add lists via environment:
# Add to .env file IMDB_LISTS=top,boxoffice # Restart container docker-compose restart
"Already available" for Everything
Symptoms: All items show as "already available" even for new content
Causes:
- Items already exist in your media library
- Overseerr has different availability rules
- 4K vs standard quality mismatch
Solutions:
-
Check Overseerr directly:
- Log into Overseerr web interface
- Search for the specific titles
- Verify their actual status
-
Review 4K settings:
# Check your 4K setting OVERSEERR_4K=false # or true -
Clear cache and retry:
# Restart with fresh data docker-compose down docker volume prune docker-compose up -d
Sync Stops After Few Items
Symptoms: Sync process stops after processing only a few items
Causes:
- Rate limiting from list providers
- Memory issues
- Network timeouts
- Selenium/browser crashes
Solutions:
-
Check for rate limiting:
# Look for rate limit messages in logs docker-compose logs | grep -i "rate\|limit\|429" -
Increase memory allocation:
# In docker-compose.yml services: listsync-full: mem_limit: 2g # Increase memory limit -
Reduce concurrent processing:
# Reduce special list limits TRAKT_SPECIAL_ITEMS_LIMIT=20 # Lower from default
๐ Connection Problems
Connection Troubleshooting Flowchart
flowchart TD
Start[Cannot Connect to Overseerr] --> TestURL{Can you access<br/>Overseerr URL<br/>in browser?}
TestURL -->|No| CheckOverseerr[Overseerr is down<br/>or URL is wrong]
TestURL -->|Yes| TestAPI{Does API<br/>endpoint work?}
TestAPI -->|No| CheckAPIKey{Is API key valid?}
TestAPI -->|Yes| CheckFromContainer{Can container<br/>reach Overseerr?}
CheckAPIKey -->|No| GetNewKey[Get new API key from<br/>Overseerr Settings]
CheckAPIKey -->|Yes| CheckFormat{Is URL format<br/>correct?}
CheckFormat -->|No| FixFormat[Add http:// or https://<br/>Remove trailing slash]
CheckFormat -->|Yes| CheckNetwork[Check network<br/>& firewall]
CheckFromContainer -->|No| FixDockerNet[Check Docker network<br/>Use container name<br/>or host.docker.internal]
CheckFromContainer -->|Yes| Success[Connection OK!<br/>Check other issues]
CheckOverseerr --> FixOverseerr[Start Overseerr<br/>Verify URL in .env]
GetNewKey --> UpdateEnv[Update .env with<br/>new API key]
FixFormat --> UpdateEnv
UpdateEnv --> Restart[Restart ListSync<br/>docker-compose restart]
FixDockerNet --> Restart
CheckNetwork --> ContactAdmin[Contact network admin<br/>or check firewall rules]
style Start fill:#f44336
style Success fill:#4CAF50
style GetNewKey fill:#2196F3
style FixFormat fill:#2196F3
style FixDockerNet fill:#FF9800
style Restart fill:#4CAF50
Cannot Connect to Overseerr
Error Messages:
- "Connection refused"
- "Host unreachable"
- "Invalid API key"
Debugging Steps:
-
Test network connectivity:
# From inside container docker exec -it listsync-full curl http://your-overseerr-url # Test specific API endpoint curl -H "X-Api-Key: your-key" http://your-overseerr-url/api/v1/status -
Check API key:
# Get API key from Overseerr # Settings โ General โ API Key # Test in browser http://your-overseerr-url/api/v1/status?apikey=your-key -
Verify URL format:
# Correct formats OVERSEERR_URL=http://192.168.1.100:5055 OVERSEERR_URL=https://overseerr.yourdomain.com # Incorrect (missing protocol) OVERSEERR_URL=overseerr.yourdomain.com # โ -
Docker networking:
# If Overseerr is also in Docker OVERSEERR_URL=http://overseerr:5055 # Use container name # Check Docker network docker network ls docker network inspect list-sync_default
Web Interface Not Loading
Symptoms:
- http://localhost:3222 not accessible
- "Connection refused" in browser
- Blank page or loading indefinitely
Solutions:
-
Check container status:
docker-compose ps # Should show "Up" status for listsync-full -
Check port mapping:
# Verify ports are exposed docker-compose config | grep -A5 ports # Check if port is in use netstat -tlnp | grep :3222 -
Check logs:
# Look for frontend startup issues docker-compose logs listsync-full | grep -i frontend -
Restart container:
docker-compose restart listsync-full
๐ Sync Issues
Sync Failure Diagnostic
flowchart TD
Start[Sync Not Working] --> CheckStatus{Check sync status<br/>in dashboard}
CheckStatus -->|No lists| NoLists[No lists configured]
CheckStatus -->|Lists fetching fails| FetchFail[List fetch failure]
CheckStatus -->|Items not requesting| RequestFail[Request failure]
CheckStatus -->|Everything available| AlreadyAvail[Items already available]
NoLists --> AddLists[Add lists via:<br/>1. Web UI Dashboard<br/>2. Environment variables<br/>3. API]
FetchFail --> CheckAccess{Can you access<br/>list URL manually?}
CheckAccess -->|No| ListPrivate[List is private<br/>or deleted]
CheckAccess -->|Yes| CheckFormat{Is list ID<br/>format correct?}
CheckFormat -->|No| FixFormat[Check documentation<br/>for correct format]
CheckFormat -->|Yes| CheckSelenium[Check Selenium/Chrome<br/>in container logs]
RequestFail --> CheckOverseerr{Overseerr<br/>connected?}
CheckOverseerr -->|No| FixOverseerr[Fix Overseerr connection<br/>See Connection Problems]
CheckOverseerr -->|Yes| CheckMatching{Items found<br/>in Overseerr?}
CheckMatching -->|No| MatchingIssue[Title matching issue<br/>Check year/title format]
CheckMatching -->|Yes| CheckLogs[Check logs for<br/>specific errors]
AlreadyAvail --> VerifyOverseerr[Check items in<br/>Overseerr directly]
VerifyOverseerr --> TrueAvail{Actually available?}
TrueAvail -->|Yes| Working[Working as expected!<br/>Items already in library]
TrueAvail -->|No| ClearCache[Clear cache:<br/>docker-compose restart]
ListPrivate --> MakePublic[Make list public<br/>or use different list]
FixFormat --> RetrySync[Retry sync operation]
CheckSelenium --> RestartContainer[Restart container<br/>to reset Selenium]
MatchingIssue --> EnableDebug[Enable debug logging:<br/>LOG_LEVEL=DEBUG]
CheckLogs --> FixIssues[Fix specific errors<br/>from logs]
ClearCache --> RetrySync
AddLists --> RetrySync
MakePublic --> RetrySync
RestartContainer --> RetrySync
EnableDebug --> RetrySync
FixIssues --> RetrySync
RetrySync --> Success[Sync working!]
style Start fill:#FF9800
style Success fill:#4CAF50
style Working fill:#4CAF50
style RetrySync fill:#2196F3
style FixOverseerr fill:#f44336
Lists Not Being Fetched
Symptoms: Lists show 0 items or "Failed to fetch"
Debugging:
-
Check list accessibility:
# Test list URLs manually in browser https://www.imdb.com/chart/top https://www.imdb.com/list/ls123456789 -
Verify list IDs:
# IMDb list examples IMDB_LISTS=top # โ Chart IMDB_LISTS=ls123456789 # โ List ID IMDB_LISTS=https://www.imdb.com/list/ls123456789 # โ Full URL # Trakt examples TRAKT_LISTS=123456 # โ Numeric ID TRAKT_SPECIAL_LISTS=trending:movies # โ Special format -
Check for browser issues:
# Look for Selenium errors docker-compose logs | grep -i "selenium\|chrome\|webdriver"
Slow Sync Performance
Symptoms: Syncs take very long time to complete
Optimization Steps:
-
Reduce list sizes:
# Limit special lists TRAKT_SPECIAL_ITEMS_LIMIT=25 # Reduce from 50+ # Use fewer lists initially IMDB_LISTS=top # Start with one list -
Increase sync interval:
# Sync less frequently SYNC_INTERVAL=24 # Once per day instead of hourly -
Monitor resource usage:
# Check Docker stats docker stats listsync-full # Check system resources htop
Title Matching Issues
Symptoms: Many items showing as "not found" that should exist
Debugging:
-
Check Overseerr search:
- Manually search for failing titles in Overseerr
- Note any differences in title format
-
Enable debug logging:
# Add to .env LOG_LEVEL=DEBUG # Restart and check logs for matching details docker-compose restart docker-compose logs | grep -i "matching\|similarity" -
Year matching issues:
# Look for year-related matching problems docker-compose logs | grep -i "year"
โก Performance Problems
High Memory Usage
Symptoms: Container uses excessive RAM, system becomes slow
Solutions:
-
Set memory limits:
# In docker-compose.yml services: listsync-full: mem_limit: 1g mem_reservation: 512m -
Reduce concurrent operations:
# Process fewer items at once TRAKT_SPECIAL_ITEMS_LIMIT=20 # Increase sync interval SYNC_INTERVAL=12 -
Clear browser cache:
# Restart container to clear browser cache docker-compose restart
High CPU Usage
Symptoms: High CPU utilization, system becomes unresponsive
Solutions:
-
Check for infinite loops:
# Look for repeated error messages docker-compose logs --tail=100 | grep -E "(ERROR|WARNING)" | sort | uniq -c -
Reduce processing load:
# Sync less frequently SYNC_INTERVAL=24 # Use fewer lists IMDB_LISTS=top # Start with minimal lists
๐ Web Interface Issues
Dashboard Shows Incorrect Data
Symptoms: Wrong statistics, outdated information, missing data
Solutions:
-
Clear browser cache:
- Hard refresh: Ctrl+F5 (Windows/Linux) or Cmd+Shift+R (Mac)
- Clear browser cache and cookies
-
Check API connectivity:
# Test API directly curl http://localhost:4222/api/system/health curl http://localhost:4222/api/analytics/overview -
Restart frontend:
docker-compose restart listsync-full
Real-time Updates Not Working
Symptoms: Dashboard doesn't update automatically, manual refresh required
Solutions:
-
Check WebSocket connections:
- Open browser developer tools
- Check Network tab for WebSocket connections
- Look for connection errors
-
Verify server-sent events:
# Test SSE endpoint curl http://localhost:4222/api/logs/stream -
Check CORS settings:
# Verify CORS configuration CORS_ALLOWED_ORIGINS=http://localhost:3222
๐ List Provider Issues
IMDb Lists
Common Issues:
- "Access denied" errors
- Empty results from valid lists
- Slow loading times
Solutions:
-
Verify list is public:
- Open list URL in incognito browser
- Ensure no login required
-
Check for CAPTCHA:
# Look for CAPTCHA-related messages docker-compose logs | grep -i "captcha\|verification" -
Use alternative format:
# Try different formats IMDB_LISTS=ls123456789 # Instead of full URL
Trakt Lists
Common Issues:
- Invalid list IDs
- Special list format errors
- Rate limiting
Solutions:
-
Verify list ID format:
# Regular lists (numeric) TRAKT_LISTS=123456 # Special lists (category:type) TRAKT_SPECIAL_LISTS=trending:movies,popular:shows -
Check Trakt status:
- Visit https://trakt.tv to ensure service is available
- Verify your list URLs work in browser
Letterboxd Lists
Common Issues:
- Watchlist vs regular list confusion
- User privacy settings
- Pagination problems
Solutions:
-
Use correct format:
# Regular lists LETTERBOXD_LISTS=username/list-name # Watchlists LETTERBOXD_LISTS=username/watchlist -
Check list privacy:
- Ensure lists are public
- Test URLs in incognito browser
๐ณ Docker-Specific Issues
Docker Troubleshooting Flowchart
flowchart TD
Start[Docker Issue] --> IssueType{What's the problem?}
IssueType -->|Won't start| WontStart[Container won't start]
IssueType -->|Keeps restarting| Restarting[Container restarts]
IssueType -->|Volume issues| VolumeIssue[Volume/data issues]
IssueType -->|Network issues| NetworkIssue[Network problems]
WontStart --> CheckPort{Port conflict?}
CheckPort -->|Yes| ChangePort[Change port in<br/>docker-compose.yml:<br/>8080:3222]
CheckPort -->|No| CheckPerms{Permission denied?}
CheckPerms -->|Yes| FixPerms[Add user to docker group:<br/>sudo usermod -aG docker $USER]
CheckPerms -->|No| CheckImage{Image exists?}
CheckImage -->|No| PullImage[Pull image:<br/>docker-compose pull]
CheckImage -->|Yes| CheckLogs[Check container logs:<br/>docker-compose logs]
Restarting --> CheckExit[Check exit code:<br/>docker-compose ps]
CheckExit --> ViewLogs[View container logs:<br/>docker logs listsync-full]
ViewLogs --> FixError{Identify error<br/>in logs?}
FixError -->|Yes| ApplyFix[Apply specific fix<br/>based on error]
FixError -->|No| RunInteractive[Run interactive:<br/>docker-compose up]
VolumeIssue --> CheckMount{Volume mounted?}
CheckMount -->|No| FixMount[Check docker-compose.yml<br/>volumes section]
CheckMount -->|Yes| CheckPermissions{Write permissions?}
CheckPermissions -->|No| ChmodData[Fix permissions:<br/>chmod 755 ./data]
CheckPermissions -->|Yes| CheckSELinux[Check SELinux:<br/>ls -laZ ./data]
NetworkIssue --> CheckNetworking{Can ping host?}
CheckNetworking -->|No| FixNetwork[Check Docker network:<br/>docker network inspect]
CheckNetworking -->|Yes| CheckDNS{DNS working?}
CheckDNS -->|No| FixDNS[Add DNS to<br/>docker-compose.yml]
CheckDNS -->|Yes| CheckFirewall[Check firewall rules]
ChangePort --> Restart[Restart container:<br/>docker-compose up -d]
FixPerms --> Restart
PullImage --> Restart
CheckLogs --> ApplyFix
RunInteractive --> ApplyFix
FixMount --> Restart
ChmodData --> Restart
CheckSELinux --> FixSELinux[Disable SELinux or<br/>add :Z to volume mount]
FixSELinux --> Restart
FixNetwork --> Restart
FixDNS --> Restart
CheckFirewall --> OpenPorts[Open required ports:<br/>3222, 4222]
OpenPorts --> Restart
ApplyFix --> Restart
Restart --> Success[Container running!]
style Start fill:#FF9800
style Success fill:#4CAF50
style Restart fill:#2196F3
Container Won't Start
Error Messages:
- "Port already in use"
- "Permission denied"
- "Image not found"
Solutions:
-
Port conflicts:
# Check what's using the port sudo netstat -tlnp | grep :3222 # Change ports in docker-compose.yml ports: - "8080:3222" # Use different host port -
Permission issues:
# Fix Docker permissions sudo chmod 666 /var/run/docker.sock # Add user to docker group sudo usermod -aG docker $USER # Log out and back in -
Image issues:
# Pull latest image docker-compose pull # Rebuild if using local build docker-compose build --no-cache
Volume Mount Issues
Symptoms: Configuration not persisting, data loss after restart
Solutions:
-
Check volume permissions:
# Ensure data directory is writable chmod 755 ./data # Check SELinux (if applicable) ls -laZ ./data -
Verify mount paths:
# Check volume configuration docker-compose config | grep -A5 volumes # Inspect container mounts docker inspect listsync-full | grep -A10 Mounts
Container Keeps Restarting
Symptoms: Container starts then immediately exits, restart loop
Debugging:
-
Check exit codes:
# Look at container status docker-compose ps # Check exit reason docker logs listsync-full -
Run interactively:
# Start container without daemon mode docker-compose up # Or run bash to debug docker run -it --entrypoint bash ghcr.io/woahai321/list-sync:main
๐ป Manual Installation Issues
Python Version Problems
Error Messages:
- "Python version not supported"
- "Module not found"
- "Syntax errors"
Solutions:
-
Check Python version:
python3 --version # Should be 3.8+ # Install newer Python if needed sudo apt install python3.9 python3.9-venv -
Virtual environment issues:
# Recreate virtual environment rm -rf venv python3 -m venv venv source venv/bin/activate pip install -r requirements.txt
Node.js/Frontend Issues
Common Problems:
- Build failures
- Dependency conflicts
- Port conflicts
Solutions:
-
Node.js version:
node --version # Should be 18+ # Install/update Node.js curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs -
Clean installation:
cd listsync-nuxt rm -rf node_modules package-lock.json npm cache clean --force npm install
Chrome/Selenium Issues
Error Messages:
- "Chrome not found"
- "WebDriver errors"
- "Selenium timeouts"
Solutions:
-
Install Chrome:
# Ubuntu/Debian wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list' sudo apt update sudo apt install google-chrome-stable -
Fix dependencies:
# Install Chrome dependencies sudo apt install libxss1 libappindicator1 libindicator7 -
Test Chrome:
# Test headless Chrome google-chrome --headless --no-sandbox --disable-gpu --dump-dom https://google.com
๐ ๏ธ Debugging Tools
Log Analysis
# View real-time logs
docker-compose logs -f listsync-full
# Filter by log level
docker-compose logs listsync-full | grep ERROR
# Search for specific terms
docker-compose logs listsync-full | grep -i "overseerr\|sync\|error"
# Last 100 lines
docker-compose logs --tail=100 listsync-full
API Testing
# Test all major endpoints
curl http://localhost:4222/api/system/health
curl http://localhost:4222/api/lists
curl http://localhost:4222/api/analytics/overview
curl http://localhost:4222/api/processed?limit=5
# Test with verbose output
curl -v http://localhost:4222/api/system/status
Database Inspection
# Connect to database directly
sqlite3 data/list_sync.db
# View tables
.tables
# Check lists
SELECT * FROM lists;
# Check recent sync results
SELECT * FROM synced_items ORDER BY last_synced DESC LIMIT 10;
Container Debugging
# Enter running container
docker exec -it listsync-full bash
# Check processes inside container
docker exec -it listsync-full ps aux
# Check container resources
docker stats listsync-full
# Inspect container configuration
docker inspect listsync-full
Network Testing
# Test connectivity from container
docker exec -it listsync-full curl http://your-overseerr-url
# Check DNS resolution
docker exec -it listsync-full nslookup your-overseerr-url
# Test specific ports
docker exec -it listsync-full nc -zv your-overseerr-url 5055
๐ Getting Help
Before Asking for Help
-
Gather information:
# System info docker --version docker-compose --version # Container status docker-compose ps # Recent logs docker-compose logs --tail=50 listsync-full > listsync-logs.txt -
Test basic functionality:
# Health check curl http://localhost:4222/api/system/health # Manual sync test curl -X POST http://localhost:4222/api/sync/trigger -
Sanitize sensitive information:
- Remove API keys from logs
- Replace URLs with placeholders
- Remove personal list IDs
Information to Include
When reporting issues, include:
- Installation method (Docker/manual)
- Operating system and version
- Docker/Docker Compose versions (if applicable)
- Configuration (sanitized .env file)
- Error messages (exact text)
- Steps to reproduce
- Expected vs actual behavior
- Recent logs (relevant portions)
Support Channels
-
GitHub Issues: https://github.com/soluify/list-sync/issues
- Bug reports
- Feature requests
- Configuration help
-
GitHub Discussions: https://github.com/soluify/list-sync/discussions
- General questions
- Setup help
- Community support
-
Discord: Join our Discord
- Real-time help
- Community chat
- Quick questions
Self-Help Resources
- Documentation: Read all docs in the
/docsfolder - Example Configurations: Check
envsample.txtfor examples - API Documentation: Use http://localhost:4222/docs for API reference
- Source Code: Review the codebase for understanding implementation
Remember: Most issues are configuration-related. Double-check your environment variables, API keys, and network connectivity before seeking help.