【Heroku × Flask】No web processes runningエラーの対処

- Python -
2020.06.17
Python[パイソン]

HerokuにFlaskで最低限のHello World環境を整えようとデプロイしてつまづいた時の状況と、解決した方法をメモしておきます。

HerokuでNo web processes runningエラーが出た時の状況

git push heroku masterでデプロイ自体は上手くいったのですが、アクセスするとこのエラー画面が。

HerokuでNo web processes runningエラー

heroku logsでログを確認すると、「at=error code=H14 desc="No web processes running"」のエラーが。

(venv) testapp $ heroku logs
2020-06-15T17:31:43.274005+00:00 app[api]: Release v3 created by user xxx
2020-06-15T17:31:51.000000+00:00 app[api]: Build succeeded
2020-06-15T17:32:02.980501+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=testapp.herokuapp.com request_id=6b5cb0c4-8190-458d-8176-75ca7fd671d1 fwd="111.239.163.136" dyno= connect= service= status=503 bytes= protocol=https

heroku psだと「No dynos on ...」と出ていました。

(venv) testapp $ heroku ps
Free dyno hours quota remaining this month: 548h 49m (99%)
Free dyno usage for this app: 0h 0m (0%)
For more information on dyno sleeping and how to upgrade, see:
https://devcenter.heroku.com/articles/dyno-sleeping

No dynos on ⬢ testapp
(venv) testapp $

app.py、Procfile、requirements.txtはこんな状態↓で、venv仮想環境上でpip install flask gunicornしただけです。

HerokuでNo web processes runningエラー HerokuでNo web processes runningエラー HerokuでNo web processes runningエラー

↑3行目にあるgunicornをインストールするのを忘れる人も多いようです(pip install gunicorn)。

解決した方法

Herokuのアプリ管理画面 > Resourcesの画面へ行くと、アプリケーションサーバ(Procfileに記載したgunicorn)が起動していない状態になっていました(赤枠部分)。

HerokuでNo web processes runningエラー

これを、以下のようにして起動状態にします。

HerokuでNo web processes runningエラー

これだけで、エラーが解消されHello Worldできるようになりました。

↑TOP