Troubleshooting Tunnels
Connection Issues
”Connection Failed”
Symptoms: Tunnel won’t connect, shows error state.
Causes & Solutions:
-
Server unreachable
- Verify server URL:
curl https://api.yourdomain.com/health - Check your internet connection
- Ensure server is running:
docker compose ps
- Verify server URL:
-
Invalid API key
- Create a new API key in Settings → Account
- Ensure the key is copied completely
-
Firewall blocking
- Allow outbound HTTPS (port 443)
- Check corporate firewall rules
”Authentication Failed”
Symptoms: Connects but fails during auth.
Solutions:
- Verify API key is correct
- Check API key hasn’t been revoked
- Try creating a new API key
”Subdomain Unavailable”
Symptoms: Can’t use desired subdomain.
Causes:
- Subdomain is reserved by the system
- Another user has an active tunnel with that subdomain
- Invalid subdomain format
Solutions:
- Choose a different subdomain
- Check subdomain follows naming rules (lowercase, no special chars)
Request Issues
502 Bad Gateway
Symptoms: Visitors see 502 error.
Causes & Solutions:
-
Local server not running
- Start your dev server
- Verify it’s listening on the expected port
-
Wrong port exposed
- Check which port your server uses
- Update the tunnel to use the correct port
-
Server crashed
- Check server logs
- Restart the server
504 Gateway Timeout
Symptoms: Requests timeout after ~30 seconds.
Causes & Solutions:
-
Slow local server
- Check server performance
- Look for blocking operations
-
Network latency
- Test local server directly
- Check VPS location and latency
Requests Not Reaching Server
Symptoms: No requests appear in logs.
Solutions:
- Verify tunnel shows “Connected” status
- Check you’re using the correct URL
- Ensure HTTPS (not HTTP)
- Clear browser cache
Performance Issues
Slow Responses
Possible causes:
- High latency to VPS
- Large response bodies
- Slow local server
Solutions:
- Choose a VPS closer to your location
- Optimize local server performance
- Enable compression if supported
High Latency
Diagnosis:
# Test latency to your serverping api.yourdomain.com
# Test full requesttime curl https://myapp.expose.yourdomain.comSolutions:
- Use a VPS in your region
- Check for network congestion
- Minimize response sizes
WebSocket Issues
WebSocket Won’t Connect
Solutions:
- Verify local server supports WebSocket
- Check WebSocket path is correct
- Ensure local server is accepting upgrades
Frequent Disconnections
Solutions:
- Implement reconnection logic in client
- Check for network instability
- Increase server timeout settings
Debugging
Enable Verbose Logging
In the app:
- Go to Settings → Advanced
- Enable “Debug Logging”
- View logs in Console.app
Check Server Logs
docker compose logs -f expose-server | grep tunnelTest Locally First
Always verify your server works without the tunnel:
# Test local servercurl http://localhost:3000
# Then test through tunnelcurl https://myapp.expose.yourdomain.comGetting Help
If you can’t resolve the issue:
- Check GitHub Issues
- Include in bug reports:
- macOS version
- App version
- Error messages
- Steps to reproduce