- Open the run on the Pipelines page, or the failed revision in the service's Deployments tab, and read the build output. A build error names the file and line.
- If the build passed but the app does not come up, open the Logs tab: the app usually says why it stopped.
Usual causes
- Wrong port — the port in the service's settings must be the one the app listens on.
- A missing environment variable — an app that reads a setting at start-up stops when it is not there.
- A failing health check — the path must answer with a success status once the app is ready.
- Out of memory — raise the memory limit, or the server size.
- The before-start command failed — the deploy stops before the new version starts, and the build output ends with what the command printed. A migration that cannot reach its database, or a command missing from the image, are the usual causes.
- Wrong root directory — in a monorepo, the folder must be the one that holds the app's own files (its
package.json,go.mod…).
Getting back to a working version
A failed deploy does not replace what was running. To go back further, revert to an earlier revision.