Knowledge base › Monitoring and help

A deploy failed

Where to look, the usual causes, and how to get back to a working version.

  1. 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.
  2. 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.