Troubleshooting
What a failed deploy is telling you, and the fix for each stable failure code.
Start with the platform's own words, then fix the one thing it names.
Reading a failure
A failed deploy prints:
- A code, a stable name such as
build_failed_dependency. This is the first thing to act on. - What failed, and which stage:
uploading,building,startingorlive. "Building" points at your code or dependencies. "Starting" points at the start command or the port. - The cause and a fix in plain words.
- The end of the log, when the cause is not recognised.
Add --json to get the code in a form a script can read.
By stage
uploadingnode_modules and .venv.buildingstarting0.0.0.0 on the health.port. Set runtime.entrypoint. Reading PORT is the usual way.live, but the page is an error/. Run it locally with cohostly dev, and read cohostly logs.Codes
unsupported_runtimenot_detectedpackage.json, requirements.txt, go.mod or index.html. Otherwise set runtime.entrypoint.unsupported_versionunsupported_buildnpm run <script>, pnpm run <script>, yarn <script> or npx next build.build_failed_dependencybuild_failed_commandbuild_failedbuild_out_of_memorymissing_secretcohostly secrets set NAME --project <name> (secrets).port_mismatchPORT, or set health.port.binds_loopback0.0.0.0.start_crashedupload_too_largeprovider_busyRetry-After time and try once more.snapshot_invalid, snapshot_expired, snapshot_wrong_account, snapshot_tampered, snapshot_unavailablecohostly snapshot or cohostly pack. Never edit one by hand.Snapshot-time codes (secret_in_command, no_http_port and others) are in snapshot.
Good to know Fix the cause the code names, deploy, and stop after two tries. A third guess costs another build and usually repeats the second. If it still fails, write down what you changed and what the platform said last.
Common questions
The app opens for me but not for others. Check visibility first. An outsider sees "not found" when the project is private or account and they have no access. That does not mean the app is down. cohostly share --project <name> shows who can open it.
"Needs a secret called X". The deploy worked and the app started without the value. Set it with cohostly secrets set X --project <name>.
"Name is already taken". Project names are global. Choose another.
The first visit after a while is slow. The app was asleep. See how apps run.
My timer inside the app never fires. A sleeping app runs nothing. Use the clock.
My files disappeared. The disk is not durable. Use the database.
A table returns no rows. It has no -- policy: line, or the policy hides other people's rows. See data.
caller_unknown from a connection. A user connection was called outside a request. Call it inside a request handled by middleware().
A login page never appears for visitors. Your own login is behind a platform check. Own login needs public or link (sharing and roles).
Rate limited (429). Wait the Retry-After seconds. See limits.