Help us understand the problem. What is going on with this article?

HerokuでApplicationErrorが発生したときの対処法

More than 3 years have passed since last update.

heroku で運用を行っていると、原因不明の ApplicationError が発生することがあります。
30秒ルール以外で発生する場合、経験上はエラーコード H10 が発生していることが多いです。

Heroku Error Codes | H10 - App crashed

この例の通り deploy 時に多く発生するのですが、原因が Gem や設定ファイルの不備に起因することはあるものの、deploy 内容に問題がないこともあります。

こういうときは再起動だ!って訳で以下のコマンドを実行するわけです。

heroku restart --app application_name

でもこれやっても全く解消しないことも結構多いのです。
さて困った・・・。

こんなときは、以下のコマンドで再起動を実行しましょう。

heroku restart web.1 --app application_name

これは WebDyno を個別に再起動するコマンド。例えば WebDyno を3つ使っていたら、下記コマンドを全部実行する必要があります。

heroku restart web.1 --app application_name
heroku restart web.2 --app application_name
heroku restart web.3 --app application_name

heroku restart では解消しなかったら ApplicationError もあらびっくり。
ログに "App crashed" ってずっと書きこまれていたのがすぅっと消えるのはちょっとした快感です。
起きないのがもちろん一番なわけですが。

このコマンドの説明、公式に載っていたはずだけどどこだったかな。。。

この WebDyno 個別再起動ではなく再 deploy で直ったこともありますが、いかんせん heroku はgit push -fで強制的に push しても同じ deploy 内容だと拒絶しちゃうし、どうしても10分以上かかっちゃう( deploy 容量や Gem による)のが悩みどころでした。
今はこのコマンドで解消できているので助かっています。
herorku の再起動は graceful restart なので、アクセス中のユーザがいても特に問題ない(はず)です。

ちなみに、やることがあるか分りませんが WorkerDyno は以下のコマンドで再起動できます。

heroku restart worker.1 --app application_name

しかし、アプリケーション再起動と Dyno の再起動って内部的にやってることが違うってことなんですかね、やっぱり。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした