Troubleshooting
A checklist for the issues support sees most often. Start here before opening a ticket.
Deployment failures
Open Service → Deploys → [failed deploy] → Logs and find the first red step. Most failures fall into one of these buckets:
| Symptom | Likely cause | Fix |
|---|---|---|
| Build exits 1 immediately | Wrong root directory or missing lockfile | Set root directory in Settings; commit package-lock.json or yarn.lock |
| Module not found at runtime | Dev dependency used in production | Move the package to dependencies or set NODE_ENV=production in build |
| Container exits after start | Process binds to localhost only | Listen on 0.0.0.0 and use process.env.PORT |
| Deploy stuck on "Starting" | Health check never passes | See Health checks below |
Health checks
StackBlaze only routes traffic to replicas that return 200 on your health path (default /health). A common mistake is checking a dependency that is not ready on cold start.
Tip
/health that returns 200 with no DB checks. If deploys succeed, fix the dependency timeout or add a startup grace period (up to 300s).See Health checks for probe configuration.
Environment variables
Changes to env vars trigger a redeploy. If the app still sees old values, confirm you edited the correct environment (production vs preview) and that the service is attached to the right project.
DATABASE_URL missing
Attach the database from the service's Environment tab. StackBlaze injects DATABASE_URL automatically, do not paste a localhost URL from your laptop.
Custom domains and SSL
DNS can take up to 48 hours to propagate. Verify the CNAME or A record matches the value in Domains. Certificate issuance fails if Cloudflare orange-cloud proxies the record, use DNS-only (grey cloud) during verification.
Database connection errors
Managed databases are reachable at *.internal hostnames from services in the same project. Connection refused usually means the service and database are in different projects or the app is using a public URL from local .env.
Out of memory (OOM)
Check Metrics → Memory. If the line hits the plan limit and the pod restarts, upgrade the plan or reduce in-process cache size. Node apps should pass --max-old-space-size below the container limit.
Still stuck?
Email support@stackblaze.com with the service ID, deploy ID, and the last 50 lines of build/runtime logs. Pro and Enterprise plans can use in-dashboard live chat.
Related: Support center · Observability · Status page