Common Errors
Solutions for common issues.
Connection Errors
"failed to connect"
Cause: Cannot reach the server.
Solutions:
- Check server address:
drip config show - Verify network connectivity:
ping tunnel.example.com - Check firewall allows port 443
- Ensure server is running:
curl https://tunnel.example.com/health
"Invalid authentication token"
Cause: Token doesn't match server configuration.
Solutions:
- Verify token:
drip config show --full - Re-configure:
drip config init - Check server token matches client token
- Ensure no extra whitespace in token
"TLS handshake failed"
Cause: TLS version mismatch or certificate issue.
Solutions:
- Ensure server uses valid certificate
- For self-signed certs (testing only):
drip http 3000 --insecure - Check system time is correct
- Verify certificate hasn't expired
"connection refused"
Cause: Server not listening on the specified port.
Solutions:
- Check server is running:
systemctl status drip-server - Verify port is correct
- Check firewall rules
Tunnel Errors
"subdomain is already taken"
Cause: Another client is using this subdomain.
Solutions:
- Choose a different subdomain
- Wait for the other tunnel to disconnect
- Use auto-generated subdomain (omit
-n)
"subdomain is reserved"
Cause: Using a reserved subdomain name.
Reserved names: www, api, admin, app, mail, ftp, blog, shop, status, health, test, dev, staging
Solution: Choose a different subdomain name.
"invalid subdomain format"
Cause: Subdomain doesn't meet requirements.
Requirements:
- 3-63 characters
- Lowercase letters, numbers, hyphens only
- Cannot start or end with hyphen
- Pattern:
^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$
"tunnel not found"
Cause: Tunnel doesn't exist or was disconnected.
Solutions:
- Check tunnel is running:
drip list - Restart the tunnel
- Verify subdomain spelling
"maximum tunnel limit reached"
Cause: Server has too many active tunnels.
Solutions:
- Close unused tunnels
- Contact server administrator
- Deploy additional server instances
"maximum tunnels per IP reached"
Cause: You've exceeded the per-IP tunnel limit (default: 10).
Solutions:
- Close unused tunnels:
drip stop all - Wait for existing tunnels to timeout
Server Errors
"TLS certificate path is required"
Cause: Missing --tls-cert flag.
Solution: Provide certificate path:
drip-server --tls-cert /path/to/cert.pem --tls-key /path/to/key.pem"rate limit exceeded"
Cause: Too many tunnel registrations from your IP.
Solution: Wait 1 minute before creating new tunnels.
"permission denied" (certificate files)
Cause: Server user can't read certificate files.
Solution: Grant access:
sudo setfacl -m u:drip:r /etc/letsencrypt/live/tunnel.example.com/*.pemDebugging
Enable Verbose Logging
drip http 3000 --verboseCheck Configuration
drip config show
drip config validateView Daemon Logs
drip attach http 3000
# Or directly
cat ~/.drip/daemons/http_3000.logCheck Server Health
curl https://tunnel.example.com/healthServer Logs (Systemd)
sudo journalctl -u drip-server -fCheck Server Stats
curl -H "Authorization: Bearer YOUR_METRICS_TOKEN" https://tunnel.example.com/statsNetwork Issues
Tunnel works but is slow
Possible causes:
- High latency to server
- Server overloaded
- Local service slow
Solutions:
- Check latency:
ping tunnel.example.com - Use a server closer to you
- Check local service performance
Tunnel disconnects frequently
Possible causes:
- Unstable network connection
- Firewall dropping idle connections
- Server restarts
Solutions:
- Check network stability
- Heartbeat keeps connections alive (every 2 seconds)
- Client auto-reconnects (up to 5 attempts)
WebSocket connections fail
Cause: Proxy not forwarding upgrade headers.
Solution: Ensure Nginx config includes:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";