Troubleshooting
Common issues and how to resolve them.
Installation Issues
SSL Certificate Fails to Generate
Symptoms: The installer fails with certificate errors during Let's Encrypt setup.
Causes:
- DNS not properly configured
- DNS propagation not complete
- Ports 80/443 blocked by firewall
Solutions:
Verify DNS records are correct:
bashdig tracker.your-domain.com +short dig announce.your-domain.com +short dig monitoring.your-domain.com +shortEach should return your VPS IP address.
Check if ports are open:
bashsudo ufw status # Or for iptables: sudo iptables -L -nWait for DNS propagation (up to 24-48 hours, usually a few minutes).
Run the installer again after fixing the issue.
Docker Build Fails
Symptoms: docker compose up -d --build fails with errors.
Solutions:
Clear Docker cache and rebuild:
bashdocker system prune -a docker compose -f docker-compose.prod.yml build --no-cache docker compose -f docker-compose.prod.yml up -dCheck available disk space:
bashdf -hEnsure Docker is running:
bashsudo systemctl status docker
Runtime Issues
Application Won't Start
Symptoms: Container keeps restarting or exits immediately.
Solutions:
Check container logs:
bashdocker compose -f docker-compose.prod.yml logs -f appVerify environment variables are set:
bashdocker compose -f docker-compose.prod.yml configCheck database connectivity:
bashdocker exec trackarr-db pg_isreadyCheck Redis connectivity:
bashdocker exec trackarr-redis redis-cli ping
Database Connection Errors
Symptoms: "Connection refused" or "ECONNREFUSED" errors.
Solutions:
Verify database container is running:
bashdocker ps | grep trackarr-dbCheck database logs:
bashdocker compose -f docker-compose.prod.yml logs dbRestart the database:
bashdocker compose -f docker-compose.prod.yml restart dbVerify
DATABASE_URLformat:postgresql://user:password@db:5432/dbname
PgBouncer Configuration Error
Symptoms: PgBouncer fails to start with syntax error in configuration.
ERROR syntax error in configuration (/etc/pgbouncer/pgbouncer.ini:3), stopping loading
FATAL cannot load config fileThe generated config shows something like:
[databases]
e21V5@postgres:5432/trackarr = host=postgres port=5432 auth_user=trackerCause: Your DB_PASSWORD contains special characters (@, :, /, #) that break the DATABASE_URL parsing in the PgBouncer image.
Solutions:
Regenerate a clean password (alphanumeric only):
bashopenssl rand -base64 32 | tr -d '/+=@:#' | head -c 32Update your configuration with the new password:
bash# Update .env sed -i "s/^DB_PASSWORD=.*/DB_PASSWORD=NEW_PASSWORD_HERE/" .env # Update secrets file if used echo -n "NEW_PASSWORD_HERE" > secrets/db_password.txtUpdate the PostgreSQL user password:
bashdocker exec -it trackarr-db psql -U postgres -c "ALTER USER tracker WITH PASSWORD 'NEW_PASSWORD_HERE';"Restart affected services:
bashdocker compose -f docker-compose.prod.yml restart postgres pgbouncer app
Alternative: Re-run ./scripts/install.sh which automatically generates safe passwords.
Redis Connection Errors
Symptoms: Session errors, rate limiting not working, "ECONNREFUSED" to Redis.
Solutions:
Verify Redis container is running:
bashdocker ps | grep trackarr-redisTest Redis connection:
bashdocker exec trackarr-redis redis-cli ping # Should return: PONGCheck Redis password matches
.env:bashdocker exec trackarr-redis redis-cli -a YOUR_PASSWORD ping
Tracker Issues
Torrents Show 0 Seeders/Leechers
Symptoms: Torrent pages display "0 seeders / 0 leechers" despite active peers.
Causes:
IP_HASH_SECRETenvironment variable not set- Peers not announcing correctly
- Redis cache issues
Solutions:
Verify
IP_HASH_SECRETis set in your.envfile.Restart the application:
bashdocker compose -f docker-compose.prod.yml restart appCheck tracker logs for announce activity:
bashdocker compose -f docker-compose.prod.yml logs -f app | grep tracker
Announce URL Not Working
Symptoms: Torrent clients show "tracker offline" or connection errors.
Solutions:
Verify announce domain DNS:
bashdig announce.your-domain.com +shortTest announce endpoint:
bashcurl -I https://announce.your-domain.com/announceCheck Caddy logs for SSL issues:
bashdocker compose -f docker-compose.prod.yml logs caddy
Authentication Issues
"Invalid or Expired Challenge"
Symptoms: Login fails with "Invalid or expired challenge" error.
Causes:
- Session expired during login
- Clock skew between client and server
- Redis session storage issues
Solutions:
Refresh the page and try again.
Clear browser cache and cookies.
Check Redis is running and accessible.
Verify server time is correct:
bashdate timedatectl
Can't Register First Admin
Symptoms: Registration form doesn't appear or fails.
Solutions:
Ensure no users exist in the database (first user becomes admin).
Check for JavaScript errors in browser console.
Verify the PoW challenge is completing:
bashdocker compose -f docker-compose.prod.yml logs -f app | grep challenge
Monitoring Issues
Grafana Shows Black Screen
Symptoms: Grafana dashboard loads but displays nothing.
Causes:
- Incorrect
GF_SERVER_ROOT_URLconfiguration - Grafana redirect loop
Solutions:
Verify
GF_SERVER_ROOT_URLincludes the full path:GF_SERVER_ROOT_URL=https://monitoring.your-domain.com/grafanaRestart Grafana:
bashdocker compose -f docker-compose.prod.yml restart grafana
Forgot Grafana Password
Solutions:
Reset the admin password:
docker exec -it trackarr-grafana grafana-cli admin reset-admin-password <new-password>Performance Issues
Slow Page Loads
Solutions:
Check system resources:
bashhtop docker statsIncrease Redis memory if needed (in
docker-compose.prod.yml).Check for long-running database queries:
bashdocker exec trackarr-db psql -U tracker -c "SELECT * FROM pg_stat_activity WHERE state = 'active';"
High Memory Usage
Solutions:
Set memory limits in Docker Compose:
yamlservices: app: deploy: resources: limits: memory: 512MRestart containers to free memory:
bashdocker compose -f docker-compose.prod.yml restart
Common Commands
Full Restart
cd /opt/trackarr
docker compose -f docker-compose.prod.yml down
docker compose -f docker-compose.prod.yml up -dRestart with Rebuild
cd /opt/trackarr
docker compose -f docker-compose.prod.yml down
docker compose -f docker-compose.prod.yml up -d --build --force-recreateView All Logs
docker compose -f docker-compose.prod.yml logs -fView Specific Service Logs
docker compose -f docker-compose.prod.yml logs -f app # Application
docker compose -f docker-compose.prod.yml logs -f db # PostgreSQL
docker compose -f docker-compose.prod.yml logs -f redis # Redis
docker compose -f docker-compose.prod.yml logs -f caddy # Reverse proxyCheck Container Health
docker ps
docker compose -f docker-compose.prod.yml psDatabase Backup
docker exec trackarr-db pg_dump -U tracker trackarr > backup.sqlDatabase Restore
cat backup.sql | docker exec -i trackarr-db psql -U tracker trackarrStill Need Help?
If you're still experiencing issues:
- Check the GitHub Issues for similar problems
- Open a new issue with:
- Description of the problem
- Relevant log output
- Your environment (OS, Docker version)
- Steps to reproduce
- Get professional support if you need hands-on help