Heroku R10 Boot Timeout / H20 App Boot Timeout
Quick answer
R10 means your web process did not bind to $PORT within 60 seconds. H20 is the broader 75-second router limit. Make startup faster and bind to $PORT immediately.
Most likely fix: Listen on $PORT first
How to fix it
Try these in order — the most common fix is first.
1. Listen on $PORT first
- Bind the server to process.env.PORT (or $PORT) before doing slow initialization
- Never hard-code the port
Did this fix it?2. Do slow work after the port is open
- Connect to databases and warm caches asynchronously
- Move migrations to the release phase: release: npm run migrate in the Procfile
Did this fix it?3. Precompile assets at build time
- On Rails make sure asset precompilation runs during git push, not at dyno boot
Did this fix it?4. Trim the slug
- Remove unused dependencies and large files
- Smaller slugs start faster
Did this fix it?5. Use the boot timeout tool as a stopgap
- Cedar apps can raise the boot timeout temporarily with the Heroku boot timeout tool
- It is not a permanent fix
Did this fix it?
Symptoms
Logs show Error R10 (Boot timeout) -- Web process failed to bind to $PORT within 60 seconds, or H20 App boot timeout; the dyno restarts in a loop.
Why it happens
- Not listening on $PORT
- Waiting on a database or API before starting to listen
- Heavy startup work or large dependencies
- Rails assets compiled at boot instead of at build
- Very large slug
This guide also covers
- heroku r10 boot timeout
- heroku web process failed to bind to port
- heroku h20 app boot timeout
Still not working?
If Heroku keeps failing, you're not alone. See every Heroku problem users report or the alternatives people switch to.
Have an app idea? Our small team builds any software: web and mobile apps, games, desktop, AI tools. Price agreed together.
Talk to us