Client Area

Troubleshooting App Platform

4 min readPublished 6 Apr 2026Updated 22 Aug 2026299 views

In this article

  • 1Start here
  • 2App builds but will not load
  • 3Build failing
  • 4Nothing has deployed at all
  • 5"Invalid or expired deploy token", but the token is new

Start here

What you are seeingWhere to look
Build failedDeploys tab → open the failed deploy → read the log
Built, but the site does not loadLogs tab → did the app start and bind correctly?
Nothing has ever deployedSee Nothing has deployed at all below
Custom domain not workingDomains tab → is it Verified?

App builds but will not load

The usual cause is how the app listens.

  • It must listen on the port given in the PORT environment variable
  • It must bind to 0.0.0.0, not localhost or 127.0.0.1
javascript
// Node.js
const port = process.env.PORT || 3000;
app.listen(port, '0.0.0.0');
python
# Python
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)

If your logs show the app started and listening on 0.0.0.0 and the URL still does not answer, stop and open a ticket — that combination is a platform-side routing issue, not something you can fix by redeploying.

Build failing

Open the failed deploy in the Deploys tab and read the log. Common causes:

  • package.json or requirements.txt is not in the repository root
  • The runtime version is wrong — pin it:
json
// package.json
{ "engines": { "node": "22.x" } }
# runtime.txt
python-3.12.x
  • Private npm packages without an auth token
  • A Dockerfile error

Nothing has deployed at all

If the Deploys tab is empty, your code has never been uploaded — so there are no build logs to read and nothing in your code is at fault.

  • Connected GitHub? Check the GitHub tab shows your repository and branch, then use Deploy Now
  • Using a deploy token? Re-run the command from the Deploy Tokens tab and note any error it returns

"Invalid or expired deploy token", but the token is new

Check the command you actually ran. The most common cause is pasting the example without editing it, so the word <YOUR_DEPLOY_TOKEN> is still in there instead of your token.

The other cause is an app-name mismatch: a token works for one app only, so pointing it at a different app is reported as an invalid token rather than a wrong address.

The Deploy Tokens page shows a ready-to-run command with both values already filled in — using that avoids both mistakes.

If neither starts a deploy, open a ticket with your app name — do not keep retrying.

App keeps restarting

  • Check Logs for the error that ends each run
  • Common causes: an unhandled exception at startup, a missing environment variable, or running out of memory
  • If it is memory, a larger plan gives more RAM per app

502 Bad Gateway

  • The app may still be starting — wait about 30 seconds
  • The app may have crashed — check Logs
  • The app may be listening on the wrong port or bound to localhost

Environment variable not taking effect

  • Confirm it is listed in Env Vars
  • Names are case-sensitive
  • Check for trailing spaces
  • The app restarts automatically — confirm in Logs that it restarted
  • DATABASE_URL and PORT are managed by the platform and cannot be overridden

Deploy seems stuck

  • Check the Deploys tab for current status
  • Builds over about 5 minutes may have timed out — simplify the build or open a ticket

Still stuck?

Open a support ticket and include:

  • Your app name
  • What you expected and what happened
  • The error text from Logs or the failed build

That is usually enough for us to find it on the first reply.

Was this article helpful?

Your feedback helps us improve our documentation

Still need help? Submit a support ticket

Troubleshooting App Platform - Knowledge Base