Skip to main content

Troubleshooting

Quick solutions to common issues.


🔍 Quick Diagnostics

# Check services
docker compose ps

# View logs
docker compose logs -f

# Restart service
docker compose restart <service>

# Debug CLI
dnstestergo query example.com udp://8.8.8.8:53 --debug

🔴 Common Errors

ErrorCauseSolution
connection refusedAPI not runningdocker compose --profile prod up -d
503 Service UnavailableNo workersdocker compose restart dnstestergo-worker
429 Too Many RequestsRate limit hitIncrease rate_limiting.requests_per_second in config
400 Bad Request: domain requiredInvalid JSONCheck request format with jq
invalid server address formatMissing protocolUse udp://8.8.8.8:53 not 8.8.8.8
task failedWorker errordocker compose logs dnstestergo-worker
TLS verify failedInvalid certUse --insecure (test only) or fix certificate
NXDOMAINDomain doesn't existVerify domain with whois
i/o timeoutNetwork/firewallTest with nc -zvu 8.8.8.8 53
no workers availableWorker not runningCheck docker compose ps dnstestergo-worker

🔧 Configuration Issues

ProblemFix
do53/udp requires an IP addressAdd ip field for UDP/TCP services
invalid IP addressUse valid IPv4/IPv6 (e.g., 8.8.8.8, 2001:4860:4860::8888)
failed to parse YAMLCheck indentation (2 spaces, no tabs). Use yamllint
no servers configuredVerify servers: section exists in config.yaml

Example fix:

# ❌ Wrong
servers:
- hostname: "dns.google"
services: ["do53/udp"]

# ✅ Correct
servers:
- ip: "8.8.8.8"
hostname: "dns.google"
services: ["do53/udp", "dot"]

🐳 Docker Issues

ProblemSolution
Container exits immediatelydocker compose logs <service>
Port already in useChange port in docker-compose.yml or stop conflicting service
Redis connection faileddocker compose restart redis + check REDIS_URL
Permission denied (volumes)chmod 644 conf/config.yaml
Worker not processingdocker compose restart dnstestergo-worker

🌐 Network Issues

ProblemTestSolution
DoT/DoQ blocked (port 853)nc -zv dns.google 853Use DoH (port 443) instead
DNS timeoutping 8.8.8.8Try faster server or TCP
Firewall blocking UDP/53nc -zvu 8.8.8.8 53Check firewall rules
High latencyCompare protocols with --warn-threshold 0.1Use UDP for best performance
DoQ slow/unstableCheck UDP buffer sizesIncrease system UDP buffers (see below)

DoQ Performance: UDP Buffer Sizes

DNS-over-QUIC (DoQ) requires adequate UDP buffer sizes for optimal performance. If you experience slow queries or packet loss:

Check current buffer sizes:

# Linux
sysctl net.core.rmem_max
sysctl net.core.wmem_max

# macOS
sysctl kern.ipc.maxsockbuf

Increase buffer sizes (Linux):

# Temporary (until reboot)
sudo sysctl -w net.core.rmem_max=7500000
sudo sysctl -w net.core.wmem_max=7500000

# Permanent
echo "net.core.rmem_max=7500000" | sudo tee -a /etc/sysctl.conf
echo "net.core.wmem_max=7500000" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Increase buffer sizes (macOS):

sudo sysctl -w kern.ipc.maxsockbuf=3014657

For more details, see quic-go UDP Buffer Sizes guide.


📊 Monitoring Issues

ProblemCheckFix
Metrics not updatingcurl localhost:5000/metricsPerform test query
Grafana "No data"Prometheus targets: http://localhost:9090/targetsVerify data source config
Worker metrics missingWorker started with --enable-metrics?Add flag or check port 9091

🐛 Debug Checklist

Before reporting issues, collect:

# 1. Version
dnstestergo --version

# 2. Full error with debug
dnstestergo query example.com udp://8.8.8.8:53 --debug 2>&1 | tee error.log

# 3. Logs
docker compose logs > logs.txt

# 4. Config
cat conf/config.yaml

# 5. Services status
docker compose ps

🆘 Get Help


📚 See Also