Connection Refused
Your service isn’t responding on the expected port.Quick Checks
Common Causes
Port not exposed in docker-compose.yml:Connection Timeout
The connection hangs without immediate response.Diagnosis Steps
Common Causes
Service still starting: Some applications take time to initialize. Check logs for startup progress. Wrong URL format:TLS/Certificate Errors
TLS Handshake Failed
For default mode (TLS termination):s suffix):
Certificate Hostname Mismatch
In passthrough mode, you have two options: Option 1: Use a custom domain with dstack-ingress*.phala.network domains. Use passthrough mode primarily with custom domains or for protocols that handle certificates differently (like some databases).
Custom Domain Issues
DNS Not Resolving
Certificate Not Issued
For custom domains using dstack-ingress:- Cloudflare: ~2 minutes
- Linode: ~5 minutes
- Namecheap: ~2 minutes
CAA Record Blocking Certificate
If you previously usedSET_CAA=true and then wiped certificates/account, old CAA records may block new certificate issuance:
-
Wait for dstack-ingress to update CAA: If
SET_CAA=true, it will attempt to replace old CAA records, but DNS propagation may cause initial failures. - Manually remove old CAA records: Use your DNS provider’s control panel to delete CAA records before redeploying.
-
Disable CAA temporarily: Set
SET_CAA=falseto avoid CAA checks during certificate issuance.
gRPC Connection Failed
HTTP/2 Not Available
Testing gRPC Service
SSH Access Denied
Development OS Required
SSH only works with development OS images. Production images have SSH disabled.Debug with Verbose Mode
Use the Phala CLI with verbose output to diagnose connection issues:Check SSH Keys
SSH keys from Account Settings are only injected at CVM creation time. If you added keys after deployment, use Code Update to setDSTACK_ROOT_PUBLIC_KEY.
macOS OpenSSL Issue
If using manual SSH configuration, macOS LibreSSL may cause timeouts:Debugging Commands
From Outside CVM
Inside CVM (SSH Required)
Common Patterns
Service Works Locally but Not Externally
- Check port is exposed in docker-compose.yml
- Verify service binds to 0.0.0.0, not 127.0.0.1
- Confirm URL format is correct (no port number in URL)
Intermittent Connection Failures
Could indicate unhealthy instances if you have multiple replicas. The gateway removes unhealthy instances from rotation after 5 minutes without WireGuard handshake.Works with curl but Not Application
Check if your application:- Supports SNI (Server Name Indication)
- Uses correct TLS version (1.2 or 1.3)
- Handles redirects properly
Getting Support
When reporting issues, provide:- Application ID from your deployment
- Exact URL you’re trying to access
- Error message (complete output)
- Container logs:
docker logs <container> --tail 100 - Test results from debugging commands above
ERR-01-xxx, see the Error Codes Reference.
The more specific information you provide, the faster issues can be resolved.
