Render Deploy "Build failed" / "Exited with status 1" in CI
By Kaveh Alemi·Latchkey
Render ran your build/start commands and the deploy failed - the build exited non-zero, the service crashed before passing its health check, or a missing env var/wrong root directory broke the run.
What this error means
The Render deploy log ends with a build failure or the service repeatedly restarting and failing the health check. A real build/start error reproduces every run; a missing env var fails until it is added in the dashboard or render.yaml.
Render deploy log
==> Build failed 😞
error Command failed with exit code 1.
# or
==> Service unhealthy: the service failed its health check on port 10000
Diagnose it: credentials and state before configuration
Infrastructure jobs fail on access far more often than on configuration. Confirm the runner can authenticate and reach remote state before reading the plan.
Terminal
# who am I on this runner?
<cloud-cli> auth list 2>/dev/null || <cloud-cli> sts get-caller-identity
# can the backend be reached and locked?
terraform init -backend=true -input=false
Common causes
Build or start command failed
The build command exited non-zero, or the start command crashes (wrong entrypoint, bad port). Render binds to PORT; not listening on it fails the health check.
Missing env var or wrong root directory
A required environment variable is not set in the Render service, or the root directory points at the wrong folder in a monorepo, so the build/run uses the wrong context.
How to fix it
Pin build/start, port, and env in render.yaml
Declare the commands, the port the app binds, and required env vars as infrastructure.
render.yaml
# render.yamlservices:- type:webname:apirootDir:apps/apibuildCommand:npm ci && npm run buildstartCommand:npm startenvVars:- key:DATABASE_URLsync:false
Listen on $PORT and read the build log
Bind the server to process.env.PORT so Render’s health check reaches it.
Reproduce the build command locally to read the real error.
Add missing env vars in the service settings (or render.yaml) and redeploy.
How to prevent it
Always bind to $PORT and expose a health endpoint.
Declare build/start commands, root dir, and env vars in render.yaml.
Run the build locally before pushing so failures surface early.
Frequently asked questions
What causes Render deploy "Build failed" / "Exited with status 1" in CI?
There are 2 common causes: build or start command failed and missing env var or wrong root directory. The build command exited non-zero, or the start command crashes (wrong entrypoint, bad port).
How do I fix Render deploy "Build failed" / "Exited with status 1" in CI?
There are 2 fixes depending on which cause you have: pin build/start, port, and env in render.yaml and listen on $port and read the build log. Work through them in order, since the first is the most common.
What does Render deploy "Build failed" / "Exited with status 1" in CI actually mean?
The Render deploy log ends with a build failure or the service repeatedly restarting and failing the health check.
How do I stop Render deploy "Build failed" / "Exited with status 1" in CI happening again?
Always bind to $PORT and expose a health endpoint. The prevention section lists 3 changes that keep it from recurring.