Troubleshooting
Common issues and how to resolve them. Click a problem to expand the solution.
Connection issues
Section titled “Connection issues”“Connection refused”
Section titled ““Connection refused””Cause: Local service is not running or listening on the wrong port.
Solution:
- Verify your service is running:
curl http://localhost:8080 - Check the port matches your
--serviceflag - Check firewall rules aren’t blocking localhost
WebSocket connection fails
Section titled “WebSocket connection fails”Cause: Network connectivity issue or relay server is down.
Solution:
- Check your internet connection
- Check hle.world is reachable from your browser
- Check firewall allows outbound WebSocket (WSS) connections on port 443
“Rate limit exceeded” (WS close code 4008)
Section titled ““Rate limit exceeded” (WS close code 4008)”Cause: The client sent far more control messages per second than the relay accepts, and kept it up for about half a minute, so the relay disconnected it to protect shared resources.
Solution:
- This is almost always a bugged or misconfigured client, not normal traffic — check the client logs for a message loop
- Update to the latest
hleclient version - If it persists, open an issue with the client version and what your local service is
Authentication issues
Section titled “Authentication issues”“Invalid API key” (WS close code 4001)
Section titled ““Invalid API key” (WS close code 4001)”Cause: API key is missing, invalid, or inactive.
Solution:
- Verify key exists in dashboard: hle.world/dashboard/keys
- Copy the raw key from dashboard (shown only once at creation)
- Pass it with
--api-keyflag or save to~/.config/hle/config.toml - Check key is active (not deleted or disabled)
“Tunnel limit exceeded” (WS close code 4003)
Section titled ““Tunnel limit exceeded” (WS close code 4003)”Cause: You’ve reached the tunnel limit for your API key.
Solution:
- Check dashboard for active tunnels
- Delete unused tunnels (by disconnecting the client)
- Or delete the old API key and create a new one with higher
max_tunnels
Dashboard login fails
Section titled “Dashboard login fails”Cause: Wrong email/password, rate limit, or SSO misconfiguration.
Solution:
- Double-check email and password
- If you see rate limit error, wait 5 minutes before retrying
- Try SSO (GitHub or Google) instead of email/password
- Clear browser cookies and try again
Access and routing issues
Section titled “Access and routing issues”“502 Bad Gateway”
Section titled ““502 Bad Gateway””Cause: No tunnel client is connected for this subdomain.
Solution:
- Check client is running:
hle tunnel create http://localhost:8080 - Verify client API key is correct and active
- Check client is connecting to the right relay server
- Check client logs for errors
“404 Not Found” or “Cannot GET /”
Section titled ““404 Not Found” or “Cannot GET /””Cause: Your local service is returning 404.
Solution:
- Test local service directly:
curl http://localhost:8080/ - Verify your service is running and responding
- Check the path you’re accessing (your service may require a prefix like
/api)
WebSocket doesn’t work through tunnel
Section titled “WebSocket doesn’t work through tunnel”Cause: WebSocket proxying is disabled or your service doesn’t support WebSocket.
Solution:
- Verify you’re using
--websocketflag (default enabled) - Check your service supports WebSocket on the same port as HTTP
- Test WebSocket locally: Many dev tools have WebSocket inspectors
Localhost development
Section titled “Localhost development”Wildcard DNS doesn’t work on localhost
Section titled “Wildcard DNS doesn’t work on localhost”Cause: Localhost doesn’t have wildcard DNS configured.
Solution: Use the query parameter fallback:
http://localhost:8000/?_hle_subdomain=myapp-x7kPerformance and stability
Section titled “Performance and stability”High latency or slow responses
Section titled “High latency or slow responses”Cause: Network congestion, distant relay server, or slow local service.
Solution:
- Check your internet connection bandwidth
- Check latency to hle.world from your location
- Profile your local service to ensure it’s responsive
Client disconnects frequently
Section titled “Client disconnects frequently”Cause: Network instability or firewall timeout.
Solution:
- Check your network connection
- Check firewall isn’t closing idle WebSocket connections
- Enable debug logging:
hle tunnel create ... --debug - Check server logs for errors
Getting help
Section titled “Getting help”- Documentation: hle.world/docs
- GitHub Issues: github.com/hle-world/hle-client/issues
- Debug logging: Run client with
--debugand share logs