Debugging a Stuck Deployment
Every deployment runs a 10-step pipeline. If one step fails, the rest pause. The platform tells you exactly which step is stuck and why.
1. Open the Deployments Page
Go to Applications → <your app> → Deployments. The current deployment is at the top with a per-step status indicator.
2. Identify the Failing Step
The 10 steps are: domain verification → DNS → database → storage → config → deploy to K8s → Traefik routing → SSL via DNS-01 → health check → mailbox provisioning. The first step with a red status is the cause.
3. Read the Logs for That Step
- Build logs — if the build step failed.
- Deployment logs — for K8s, DNS, SSL, or Traefik issues.
- App logs — for runtime crashes after deploy.
Common Causes
- Health check fails — the app is not listening on the port we expect. Set
PORTin env vars or fix your start command. - SSL step fails — the DNS records for your custom domain do not match what we expect. Check the DNS guide.
- Build OOM — you are on a plan with a small build container. Upgrade or trim dev dependencies.
- Image pull timeout — the deploy timeout is 15 minutes; very large images can exceed it.
Roll Back
From the Deployments page click Rollback to redeploy the previous successful version while you investigate.