Deploy status: Live, Starting, Failed, and Build failed
Understand Voroa deploy statuses — Live, Starting, Failed, and Build failed — what each means for your service and how to fix a failed deploy.
Every deploy in Voroa moves through a set of statuses, from the moment it starts building to the moment your service is live and serving traffic. The status tells you exactly where a deploy is, and — when something goes wrong — whether the problem was in the build or in starting your app.
You can see the status of any deploy in the service’s Deploys tab, both for the deploy in progress and for every deploy in your history.
Why a deploy is not “Live” the moment the build finishes
A successful build only means your app was packaged and is ready to run. It does not yet mean the app is up. After a build finishes, Voroa starts your service and waits for it to actually come up and respond before calling the deploy Live. This is why you will briefly see a Starting status between the build finishing and your service going live — and why a deploy can fail after a green build, if the app never comes up.
The statuses
Building
Voroa is fetching your code and building your app. You can watch the build stream live in the Deploys tab. If anything the build needs is missing or a build step fails, the deploy ends as Build failed.
Live
Your service is healthy and serving traffic. The new version is running and reachable at your service URL. This is the successful end state for a deploy.
Starting
The build finished and Voroa is waiting for your service to come up. This is normal and usually lasts only a few seconds. Once your app starts responding, the status moves to Live. If your app does not come up within the startup window, the status becomes Failed.
While a deploy is Starting, your previous version keeps serving traffic, so visitors are not affected during the wait.
Failed
The build succeeded, but your service did not come up. In other words, your app was built fine, but when Voroa tried to run it, it either crashed on startup or never began accepting requests. When this happens, your previous working version keeps serving traffic — the failed deploy does not take your site down.
Common causes:
- Your app crashes on startup. The process exits soon after it launches — often because of an unhandled error while starting, a failed connection to a database, or bad configuration.
- Your app does not listen on the port Voroa provides. Voroa assigns a port for your service
and expects your app to listen on it. Read the port from
process.env.PORTand bind your server to it. If your app listens on a hard-coded port instead, Voroa never sees it come up. - A required environment variable is missing. If your app needs a value it cannot find at startup — an API key, a database URL, a secret — it may crash or refuse to start. Check your service’s environment variables.
To debug a Failed deploy, open the Deploys tab and read the logs for that deploy. The build logs confirm the build succeeded; the runtime logs show what your app printed as it tried to start — usually the exact error that stopped it. Fix the issue in your code or settings and deploy again.
Build failed
The build itself failed, so there was nothing to start. This is different from Failed to start: here the problem happened while building your app, before it ever ran. Open the deploy in the Deploys tab and read the build logs to see which step failed — common causes are a failing build command, a missing dependency, or a compile error. Fix it and deploy again.
What to check when a deploy does not go live
- Open the service and go to the Deploys tab.
- Find the deploy and read its logs. Build logs show build-time problems; runtime logs show what happened when your app tried to start.
- If the status is Failed, confirm your app reads its port from
process.env.PORT, that all required environment variables are set, and that it does not crash on boot. - If the status is Build failed, check your build and start commands and that your dependencies install cleanly.
- Fix the issue and trigger a new deploy — either by pushing to your branch or with Manual Deploy.