Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Heroku App crashes immediately with R10 and H10 errors

My app runs fine locally using foreman run, and when I execute my runserver.py file using python runserver.py. When I push it to Heroku, it just crashes. I even made changes to my procfile: web: python runserver.py ${PORT} so that Heroku will bind to a port number, but to no avail...I've been at this problem for almost 3 days now. First with my Procfile and now with Heroku...any help would gladly be appreciated. Additionally, I am using Python with the Flask framework for this project -- I came across Heroku forward, but it seems to be only for RoR applications..

2014-02-24T02:24:50.146153+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
    2014-02-24T02:24:51.323561+00:00 heroku[web.1]: Process exited with status 137
    2014-02-24T02:24:51.333621+00:00 heroku[web.1]: State changed from starting to crashed
    2014-02-24T02:24:51.334368+00:00 heroku[web.1]: State changed from crashed to starting
    2014-02-24T02:24:55.793531+00:00 heroku[web.1]: Starting process with command `python runserver.py`
    2014-02-24T02:24:57.117683+00:00 app[web.1]:  * Running on http://127.0.0.1:5000/
    2014-02-24T02:24:57.117683+00:00 app[web.1]:  * Restarting with reloader
    2014-02-24T02:23:43.987388+00:00 heroku[api]: Deploy c55f7b6 by [email protected]
    2014-02-24T02:23:43.987478+00:00 heroku[api]: Release v8 created by [email protected]
    2014-02-24T02:25:56.204701+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
    2014-02-24T02:25:56.204929+00:00 heroku[web.1]: Stopping process with SIGKILL
    2014-02-24T02:25:57.495657+00:00 heroku[web.1]: Process exited with status 137

Procfile:

web: python runserver.py ${PORT}

runserver.py:

from intro_to_flask import app

app.run(debug=True)
like image 581
ShaunK Avatar asked Dec 09 '22 09:12

ShaunK


1 Answers

I found the answer to this issue...essentially I had to bind a port and specify the host that I am using:

In my runserver.py file I modified it using:

import os
from intro_to_flask import app

port = int(os.environ.get("PORT", 5000))
app.run(debug=True, host='0.0.0.0', port=port)

It's probably not the most elegant way of doing it.but it works.

like image 143
ShaunK Avatar answered Dec 11 '22 12:12

ShaunK