← All errors · ReplitNode & Python runtime errors
Application failed to respond
Exact error
Application failed to respond
What it means
Replit's proxy/health check could not reach your app process on the expected port. The server is not listening where Deployments expect, or it crashed before binding.
Likely causes
- Server bound to localhost/127.0.0.1 instead of 0.0.0.0.
- Hard-coded port instead of process.env.PORT (or PORT from Secrets).
- .replit port config (localPort/externalPort) does not match what the app listens on.
- Process exited or threw during startup before listen().
How to fix it
Bind to 0.0.0.0 and the PORT environment variable:
// Node / Express const port = process.env.PORT || 3000; app.listen(port, '0.0.0.0', () => console.log('listening on', port)); # Python # port = int(os.environ.get("PORT", 3000)) # app.run(host="0.0.0.0", port=port)Open Publishing → Logs (or Console) for crash stack traces before the health check fails.
If `.replit` defines [[ports]], set localPort to your listen port and externalPort to 80 for the public URL; otherwise remove stale port entries so auto-detection can work.
Confirm Preview works with Run before republishing; missing production Secrets often crash the process only after Publish.
Prevent this next time
- Commit package-lock.json or requirements.txt so every environment installs the same dependencies.
- Read the port from `process.env.PORT` and bind to 0.0.0.0 in hosted environments.
Guide: catch outages before your users do.
Tools that help:
- Better Stack: Uptime, cron/heartbeat monitoring and log alerts.
Some links on this page are affiliate links: if you sign up or buy through them, FixStack may earn a commission at no extra cost to you. Learn more.
FAQ
What does "Application failed to respond" mean?
Replit's proxy/health check could not reach your app process on the expected port. The server is not listening where Deployments expect, or it crashed before binding.
What usually causes it?
Server bound to localhost/127.0.0.1 instead of 0.0.0.0. Hard-coded port instead of process.env.PORT (or PORT from Secrets). .replit port config (localPort/externalPort) does not match what the app listens on. Process exited or threw during startup before listen().
How do I fix it?
1. Bind to 0.0.0.0 and the PORT environment variable: 2. Open Publishing → Logs (or Console) for crash stack traces before the health check fails. 3. If `.replit` defines [[ports]], set localPort to your listen port and externalPort to 80 for the public URL; otherwise remove stale port entries so auto-detection can work. 4. Confirm Preview works with Run before republishing; missing production Secrets often crash the process only after Publish.
Related errors
- Error: listen EADDRINUSE: address already in use
- Error: Cannot find module 'express'
- FUNCTION_INVOCATION_FAILED (500)
Tools that help
- Railway: Deploy backends and databases; new users get $20 credit.
Some links on this page are affiliate links: if you sign up or buy through them, FixStack may earn a commission at no extra cost to you. Learn more.
Get new fixes weekly
No spam. Unsubscribe anytime. Privacy