// MONITORING AND LOGS
Read Build Logs
Every build step, streamed and persisted — how to open them and what the common failures look like.
Every build step — clone, Dockerfile detection/generation, image build, container start, health check — is streamed and persisted to the deploy record as it happens. Open any deploy's log icon on the Deploy History page to read it, including for deploys that already finished.
Logs are shown from the database immediately, so they're available even if a live connection can't be established — no need to catch a build while it's running.
Common failures and where they show up in the log
Generated Dockerfile for node-genericfollowed by a runtime error — the project isn't actually Node.js and needs its own Dockerfile; seeFramework Auto-Detection.npm error ... can only install packages when your package.json and package-lock.json ... are in sync— the lockfile is stale. Runnpm install(notnpm ci) locally and commit the updated lockfile.Health check timed out— the image built, the container started, but nothing responded on the configured port in time. Check the app is listening on0.0.0.0:$PORT, notlocalhost.