Heroku のエラーコード
最終更新日 2024年05月07日(火)
Table of Contents
- H10 - App crashed (アプリがクラッシュしました)
- H11 - Backlog too deep (バックログが深すぎます)
- H12 - Request timeout (リクエストタイムアウト)
- H13 - Connection closed without response (応答なしで接続が閉じられました)
- H14 - No web dynos running (Web dyno が実行していません)
- H15 - Idle connection (アイドル接続)
- H16 - (現在は不使用)
- H17 - Poorly formatted HTTP response (HTTP 応答の形式が不完全です)
- H18 - Server Request Interrupted (サーバーリクエストが中断されました)
- H19 - Backend connection timeout (バックエンド接続タイムアウト)
- H20 - App boot timeout (アプリブートタイムアウト)
- H21 - Backend connection refused (バックエンド接続が拒否されました)
- H22 - Connection limit reached (接続限度に達しました)
- H23 - Endpoint misconfigured (エンドポイントの設定が間違っています)
- H24 - Forced close (強制終了)
- H25 - HTTP Restriction (HTTP 制限)
- H26 - Request Error (リクエストエラー)
- H27 - Client Request Interrupted (クライアントリクエストが中断されました)
- H28 - Client Connection Idle (クライアント接続がアイドル状態です)
- H31 - Misdirected Request (リクエストの誤送信)
- H32 - TLS Certificate Mismatch (H32 - TLS 証明書の不一致)
- H80 - Maintenance mode (メンテナンスモード)
- H81 - Blank app (ブランクアプリ)
- H82 - dyno 時間プールを使い果たした
- H83 - 計画的なサービスの低下
- H99 - Platform error (プラットフォームエラー)
- R10 - Boot timeout (ブートタイムアウト)
- R12 - Exit timeout (終了タイムアウト)
- R13 - Attach error (アタッチエラー)
- R14 - Memory quota exceeded (メモリ割り当てを超過しました)
- R15 - Memory quota vastly exceeded (メモリ割り当てを大幅に超過しました)
- R16 - Detached (分離されています)
- R17 - Checksum error (チェックサムエラー)
- R99 - Platform error (プラットフォームエラー)
- L10 - Drain buffer overflow (ドレインバッファオーバーフロー)
- L11 - Tail buffer overflow (tail バッファオーバーフロー)
- L12 - Local buffer overflow (ローカルバッファオーバーフロー)
- L13 - Local delivery error (ローカル配信エラー)
- L14 - Certificate validation error (証明書検証エラー)
- L15 - Tail buffer temporarily unavailable (tail バッファが一時的に使用できません)
アプリにエラーが発生したときはいつでも、Heroku は、HTTP ステータスコード 503 で標準のエラーページを返します。ただし、根本的なエラーをデバッグしやすくするために、プラットフォームもカスタムエラー情報をログに追加します。エラーのタイプごとに特有のエラーコードが割り当てられており、すべての HTTP エラーの先頭には H の文字が、すべてのランタイムエラーの先頭には R の文字が、ログ記録エラーの先頭には L の文字が使用されます。
H10 - App crashed (アプリがクラッシュしました)
Web dyno のクラッシュや Web dyno でのブートタイムアウトにより、このエラーが表示されます。
2010-10-06T21:51:04-07:00 heroku[web.1]: State changed from down to starting
2010-10-06T21:51:07-07:00 app[web.1]: Starting process with command: `bundle exec rails server -p 22020`
2010-10-06T21:51:09-07:00 app[web.1]: >> Using rails adapter
2010-10-06T21:51:09-07:00 app[web.1]: Missing the Rails 2.3.5 gem. Please `gem install -v=2.3.5 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.
2010-10-06T21:51:10-07:00 heroku[web.1]: Process exited
2010-10-06T21:51:12-07:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
H11 - Backlog too deep (バックログが深すぎます)
HTTP リクエストがアプリケーションの処理速度より高速に到達した場合、多数のルーターに大きなバックログが作成される場合があります。特定のルーター上のバックログがしきい値を超えると、ルーターは、アプリケーションが着信リクエストの容量に対応できていないと判断します。バックログがこのサイズを超えている間は、着信リクエストごとに H11 エラーが表示されます。このしきい値の正確な値は、アプリにおける dyno の数、個々のリクエストの応答時間、アプリの通常のリクエストボリュームなどのさまざまな要素によって変わることがあります。
2010-10-06T21:51:07-07:00 heroku[router]: at=error code=H11 desc="Backlog too deep" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
その解決策は、dyno をさらに追加したり、データベースを調整したり (インデックスを追加するなど)、コード自体をより高速にしたりすることによって、アプリのスループットを増加させることです。例のとおり、パフォーマンスの向上はアプリケーションによって異なるところが大きく、プロファイリングが必要になります。
H12 - Request timeout (リクエストタイムアウト)
リクエストタイムアウトの詳細 (解決するための推奨事項を含む) については、トピックに関する記事をご覧ください。
HTTP リクエストが完了するまでに 30 秒以上かかりました。下の例では、Rails アプリがページをレンダリングするまでに 37 秒かかっています。HTTP ルーターは、Rails がリクエストサイクルを完了する前に 503 を返しますが、Rails プロセスは続行し、完了メッセージがルーターメッセージの後に表示されます。
2010-10-06T21:51:07-07:00 app[web.2]: Processing PostController#list (for 75.36.147.245 at 2010-10-06 21:51:07) [GET]
2010-10-06T21:51:08-07:00 app[web.2]: Rendering template within layouts/application
2010-10-06T21:51:19-07:00 app[web.2]: Rendering post/list
2010-10-06T21:51:37-07:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=6ms service=30001ms status=503 bytes=0
2010-10-06T21:51:42-07:00 app[web.2]: Completed in 37000ms (View: 27, DB: 21) | 200 OK [http://myapp.heroku.com/]
この 30 秒の制限は、ルーターによって測定され、カーネルの着信接続キューやアプリ自体など、dyno で費やされるすべての時間を含みます。
詳細は、「リクエストタイムアウト」を参照するほか、次のエラーに関する言語固有の記事を参照してください。
H13 - Connection closed without response (応答なしで接続が閉じられました)
このエラーは、Web dyno のプロセスが接続を受け入れたときにスローされますが、何も書き込まずにソケットを閉じます。
2010-10-06T21:51:37-07:00 heroku[router]: at=error code=H13 desc="Connection closed without response" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=3030ms service=9767ms status=503 bytes=0
これが発生する例の 1 つが、Unicorn Web サーバーが 30 秒未満のタイムアウトに設定されており、タイムアウトが発生するまでリクエストが Worker によって処理されていない場合です。この場合、Unicorn は、データが書き込まれる前に接続を閉じ、その結果 H13 が生じます。
H14 - No web dynos running (Web dyno が実行していません)
これは、Web dyno を 0 dyno に縮小する結果になる可能性が最も高くなります。これを修正するには、Web dyno を 1 つ以上の dyno に拡大します。
$ heroku ps:scale web=1
heroku ps
コマンドを使用して、Web dyno の状態を判断します。
2010-10-06T21:51:37-07:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
H15 - Idle connection (アイドル接続)
dyno は完全な応答を送信せず、55 秒アイドル状態が続いたために強制終了されました。たとえば、応答には、時間どおりには送信されなかった 50 バイトの Content-Length
が示されていました。
2010-10-06T21:51:37-07:00 heroku[router]: at=error code=H15 desc="Idle connection" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service=55449ms status=503 bytes=18
ステータスコードがすでにクライアントに送信されている場合は、503
以外の HTTP ステータスコードとともに H15 エラーコードが記録される可能性があります。
H16 - (現在は不使用)
Heroku では H16 エラーは出力されなくなりました。
H17 - Poorly formatted HTTP response (HTTP 応答の形式が不完全です)
このエラーメッセージは、不正な形式の HTTP 応答が dyno から送信されていることをルーターが検出すると、ログに記録されます。
2010-10-06T21:51:37-07:00 heroku[router]: at=error code=H17 desc="Poorly formatted HTTP response" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service=1ms status=503 bytes=0
H18 - Server Request Interrupted (サーバーリクエストが中断されました)
H18 は、ソケットが接続し、何らかのデータが送信されたことを示します。完全な応答を送信する前にソケットが破棄された場合や、受信リクエストの本体全体を読み取る前にサーバーがデータで応答した場合、エラーが発生します。
2010-10-06T21:51:37-07:00 heroku[router]: sock=backend at=error code=H18 desc="Server Request Interrupted" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service=1ms status=503 bytes=0
H19 - Backend connection timeout (バックエンド接続タイムアウト)
Web dyno へのソケットを開こうと試みてから 5 秒後に、ルーターが接続タイムアウトエラーを受信しました。これは通常、アプリが忙殺され、適時に新しい接続を受け入れられないことを示す兆候です。Common Runtime アプリでは、複数の dyno がある場合、ルーターは、H19 をログ記録して標準のエラーページを提供する前に、複数の dyno を再試行します。Private Space のルーターは、別の Web dyno に要求を再ルーティングできません。
アプリの Web dyno が単一の場合は、Web dyno を実行しているランタイムインスタンスが失敗し置き換えられると、H19 エラーが表示される可能性があります。障害が検出され、インスタンスが終了すると、Web dyno は他のどこかで再起動されますが、その一方で、ルーターが dyno への接続の確立に失敗すると、H19 が表示されることがあります。これは、複数の Web dyno を実行することにより軽減できます。
2010-10-06T21:51:07-07:00 heroku[router]: at=error code=H19 desc="Backend connection timeout" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=5001ms service= status=503 bytes=
H20 - App boot timeout (アプリブートタイムアウト)
ルーターは、開始プロセスが「アップ」状態に達するまで待機している間、75 秒間リクエストをキューに入れます。75 秒後、「アップ」状態に達した Web dyno がなかった場合、ルーターは H20 をログ記録し、標準のエラーページを表示します。
2010-10-06T21:51:07-07:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
Ruby on Rails アセットパイプラインは、Git プッシュ中に実行に失敗することがあり、代わりに、アプリの dyno が起動するときに実行しようと試みます。Rails アセットパイプラインは低速プロセスのため、H20 ブートタイムアウトエラーを引き起こす可能性があります。
このエラーは、H20 75 秒タイムアウトが、内部状態伝播、内部コンポーネント間のリクエスト、slug ダウンロード、解凍、コンテナの準備などのプラットフォームタスクを含むという点で、R10 とは異なります。R10 60 秒タイムアウトは、アプリケーション起動タスクにのみ適用されます。
アプリケーションのブートにさらに多くの時間が必要な場合、ブートタイムアウトツールを使用して上限を増やすことができます。ただし、一般的に起動時間が遅いとアプリケーションのデプロイが困難になり、dyno のエラーからのリカバリにも時間がかかるため、これは一時的な解決策としてください。
H21 - Backend connection refused (バックエンド接続が拒否されました)
Web プロセスへのソケットを開こうと試みたときに、ルーターが接続拒否エラーを受信しました。これは通常、アプリが忙殺され、新しい接続を受け入れられないことを示す兆候です。
Common Runtime アプリでは、ルーターは、H21 をログ記録して標準のエラーページを提供する前に、複数の dyno を再試行します。Private Spaces アプリは、複数の dyno にリクエストを送信できません。
2010-10-06T21:51:07-07:00 heroku[router]: at=error code=H21 desc="Backend connection refused" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service= status=503 bytes=
H22 - Connection limit reached (接続限度に達しました)
ルーティングノードが、アプリに到達しようと試みた HTTP クライアント接続数が増大したことを検出しました。このしきい値に達した場合、アプリに高い負荷がかかっており、通常の速度で応答していないことを意味する可能性が高くなります。このしきい値の正確な値は、アプリにおける dyno の数、個々のリクエストの応答時間、アプリの通常のリクエストボリュームなどのさまざまな要素によって変わることがあります。
2010-10-06T21:51:07-07:00 heroku[router]: at=error code=H22 desc="Connection limit reached" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
H23 - Endpoint misconfigured (エンドポイントの設定が間違っています)
ルーティングノードが、WebSocket をサポートしないエンドポイント (アップストリームプロキシ) から発生した WebSocket ハンドシェイク (具体的にはリクエストの「Sec-Websocket-Version」ヘッダー) を検出しました。
2010-10-06T21:51:07-07:00 heroku[router]: at=error code=H23 desc="Endpoint misconfigured" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
H24 - Forced close (強制終了)
このリクエストに対応するルーティングノードが、メンテナンスのためにシャットダウンされたか、リクエストが完了する前に強制終了されました。
2010-10-06T21:51:07-07:00 heroku[router]: at=error code=H24 desc="Forced close" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service=80000ms status= bytes=18
H25 - HTTP Restriction (HTTP 制限)
このエラーは、ルーティングノードが、リスクがあるか、安全に解析するには大きすぎると判断された有効な HTTP 応答を検出しブロックすると、ログ記録されます。エラーは 4 つのタイプがあります。
現在、この機能は試験的なものであり、プラットフォーム上のアプリケーションのサブセットにのみ利用できます。
無効なコンテンツ長
応答には、同じ応答内で宣言され、長さが異なる複数のコンテンツ長があります。
2014-03-20T14:22:00.203382+00:00 heroku[router]: at=error code=H25 desc="HTTP restriction: invalid content length" method=GET path="/" host=example-app-1234567890ab.herokuapp.com request_id=3f336f1a-9be3-4791-afe3-596a1f2a481f fwd="17.17.17.17" dyno=web.1 connect=0 service=1 status=502 bytes=537
過大な Cookie
応答内の Cookie が大き過ぎるため、Heroku ルーターまたは SSL エンドポイントへのリクエストで再度使用することができません。
2014-03-20T14:18:57.403882+00:00 heroku[router]: at=error code=H25 desc="HTTP restriction: oversized cookie" method=GET path="/" host=example-app-1234567890ab.herokuapp.com request_id=90cfbbd2-0397-4bab-828f-193050a076c4 fwd="17.17.17.17" dyno=web.1 connect=0 service=2 status=502 bytes=537
過大なヘッダー
単一のヘッダー行は、長過ぎる (512 kb 以上) と見なされ、応答は意図的に破棄されます。
2014-03-20T14:12:28.555073+00:00 heroku[router]: at=error code=H25 desc="HTTP restriction: oversized header" method=GET path="/" host=example-app-1234567890ab.herokuapp.com request_id=ab66646e-84eb-47b8-b3bb-2031ecc1bc2c fwd="17.17.17.17" dyno=web.1 connect=0 service=397 status=502 bytes=542
過大なステータス行
ステータス行が長過ぎる (8 kb) と判断され、応答は意図的に破棄されます。
2014-03-20T13:54:44.423083+00:00 heroku[router]: at=error code=H25 desc="HTTP restriction: oversized status line" method=GET path="/" host=example-app-1234567890ab.herokuapp.com request_id=208588ac-1a66-44c1-b665-fe60c596241b fwd="17.17.17.17" dyno=web.1 connect=0 service=3 status=502 bytes=537
H26 - Request Error (リクエストエラー)
このエラーは、リクエストが特定の Heroku アプリケーションに所属するものと識別されているときにログ記録されますが、リクエストでの HTTP プロトコルエラーにより、dyno に完全には配信できません。可能性のある複数の原因をログメッセージで識別できます。
サポート対象外の expect ヘッダー値
リクエストに expect
ヘッダーがあり、その値が、ルーターで扱われる唯一の期待値である 100-Continue
ではありません。サポート対象外の expect
値を含むリクエストは、ステータスコード 417 Expectation Failed
で強制終了されます。
2014-05-14T17:17:37.456997+00:00 heroku[router]: at=error code=H26 desc="Request Error" cause="unsupported expect header value" method=GET path="/" host=example-app-1234567890ab.herokuapp.com request_id=3f336f1a-9be3-4791-afe3-596a1f2a481f fwd="17.17.17.17" dyno= connect= service= status=417 bytes=
不良ヘッダー
リクエストに、connection: ,
など、解析できないか、ルーターで処理されない値を含む HTTP ヘッダーがあります。
2014-05-14T17:17:37.456997+00:00 heroku[router]: at=error code=H26 desc="Request Error" cause="bad header" method=GET path="/" host=example-app-1234567890ab.herokuapp.com request_id=3f336f1a-9be3-4791-afe3-596a1f2a481f fwd="17.17.17.17" dyno= connect= service= status=400 bytes=
不良チャンク
リクエストに、チャンクされた転送エンコードがありますが、そのチャンクは無効なものであったり、正確に解析できなかったものでした。このステータスコードを含んだリクエストは、dyno への転送中に妨害されます。
2014-05-14T17:17:37.456997+00:00 heroku[router]: at=error code=H26 desc="Request Error" cause="bad chunk" method=GET path="/" host=example-app-1234567890ab.herokuapp.com request_id=3f336f1a-9be3-4791-afe3-596a1f2a481f fwd="17.17.17.17" dyno=web.1 connect=1 service=0 status=400 bytes=537
H27 - Client Request Interrupted (クライアントリクエストが中断されました)
クライアントソケットが、リクエストの途中で、または応答が返される前に閉じられました。たとえば、リクエストが完了できる前に、クライアントがブラウザセッションを閉じました。
2010-10-06T21:51:37-07:00 heroku[router]: sock=client at=warning code=H27 desc="Client Request Interrupted" method=POST path="/submit/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service=0ms status=499 bytes=0
H28 - Client Connection Idle (クライアント接続がアイドル状態です)
クライアントは完全なリクエストを送信せず、55 秒アイドル状態が続いたために強制終了されました。たとえば、クライアントは、時間どおりには送信されなかった 50 バイトの Content-Length
を示していました。
2010-10-06T21:51:37-07:00 heroku[router]: at=warning code=H28 desc="Client Connection Idle" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno=web.1 connect=1ms service=55449ms status=499 bytes=18
H31 - Misdirected Request (リクエストの誤送信)
クライアントは間違ったエンドポイントにリクエストを送信しました。これは、クライアントが古い DNS 情報を使用したか、古い DNS 情報を持つ CDN を使用してアプリにアクセスしたためである可能性があります。アプリに DNS が正しく設定されていることを確認してください。アプリに CDN が設定されている場合は、CDN プロバイダーに連絡することを検討してください。
ユーザーまたはアプリのユーザーが、ブラウザ (またはアプリが使用される手段) でアプリにアクセスできる場合、このことが問題の原因でないことがあります。このエラーは、キャッシュされた DNS エントリを持つクライアント (一般的には Web クローラー) が、現在無効なエンドポイントまたはアプリの IP アドレスにアクセスしようとした場合に発生することがあります。
以下の例に示すようなアプリログエラーメッセージを使用して、ユーザーエージェントの有効性を検証することができます。
error code=H31 desc="Misdirected Request" method=GET path="/" host=[host.com] request_id=[guid] fwd="[IP]" dyno= connect= service= status=421 bytes= protocol=http agent="<agent>"
H32 - TLS Certificate Mismatch (H32 - TLS 証明書の不一致)
リクエスト Host
ヘッダーが、サーバー名表示 (SNI) 経由でクライアントから送信されたホスト名と一致しません。このエラーは、あるドメインでリクエストを受け取り、Heroku SSL を使用して別のドメインにプロキシし、Host
ヘッダーを 2 番目のドメインに合わせて書き換えなかった場合に発生します。
2023-11-16T21:51:07-07:00 heroku[router]: at=info code=H32
desc="TLS certificate mismatch" method=GET path="/"
host=example-app-1234567890ab.host.com fwd=17.17.17.17
dyno= connect= service= status=495 bytes=
H80 - Maintenance mode (メンテナンスモード)
これはエラーではありませんが、完全を期すためにコードが提供されます。ログ形式は同じですが、「エラー」という単語がありません。
2010-10-06T21:51:07-07:00 heroku[router]: at=info code=H80 desc="Maintenance mode" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
H81 - Blank app (ブランクアプリ)
このアプリケーションにプッシュされたコードがありません。このメッセージを除去するには、1 つのデプロイを行う必要があります。これはエラーではありませんが、完全を期すためにコードが提供されます。
2010-10-06T21:51:07-07:00 heroku[router]: at=info code=H81 desc="Blank app" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
H82 - dyno 時間プールを使い果たした
このエラーは、アカウントが Eco dynos の月間 dyno 時間割り当てを使い果たし、これらの dyno を実行しているアプリがスリープ状態であることを示します。Heroku ダッシュボードで、アプリによる Eco dyno の使用状況を確認できます。
2015-10-06T21:51:07-07:00 heroku[router]: at=info code=H82 desc="You've used up your dyno hour pool" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
H83 - 計画的なサービスの低下
これは、サポート終了に達した機能の廃止をサポートするために Heroku が必要な変更を行っているときに、アプリが一時的に利用できないことを示しています。アプリケーションにアクセスしようとするとエラー画面が表示され、以下のエラーがログに表示される可能性があります。計画的なサービス停止の詳細およびタイムラインについては、Heroku Changelog および Heroku Status のページを参照してください。
2021-10-10T21:51:07-07:00 heroku[router]: at=info code=H83 desc="Service Degradation" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
H99 - Platform error (プラットフォームエラー)
H99 および R99 は、Heroku プラットフォームのエラーを表す唯一のエラーコードです。
これは、Heroku プラットフォームでの内部エラーを示します。修正するにはユーザーのアクションが必要なその他のすべてのエラーとは異なり、このエラーはアクションが不要です。すぐに再試行するか、ステータスサイトを確認してください。
2010-10-06T21:51:07-07:00 heroku[router]: at=error code=H99 desc="Platform error" method=GET path="/" host=example-app-1234567890ab.herokuapp.com fwd=17.17.17.17 dyno= connect= service= status=503 bytes=
R10 - Boot timeout (ブートタイムアウト)
Web プロセスが割り当てられた $PORT
にバインドするまでに 60 秒以上かかりました。これが発生した場合、dyno のプロセスは強制終了され、dyno はクラッシュしたと見なされます。クラッシュした dyno は、dyno マネージャの再起動ポリシーに従って再起動します。
2011-05-03T17:31:38+00:00 heroku[web.1]: State changed from created to starting
2011-05-03T17:31:40+00:00 heroku[web.1]: Starting process with command: `bundle exec rails server -p 22020 -e production`
2011-05-03T17:32:40+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2011-05-03T17:32:40+00:00 heroku[web.1]: Stopping process with SIGKILL
2011-05-03T17:32:40+00:00 heroku[web.1]: Process exited
2011-05-03T17:32:41+00:00 heroku[web.1]: State changed from starting to crashed
このエラーは多くの場合、起動時に、プロセスがデータベースなどの外部リソースに到達できなかったことや、アプリケーションが多数の大きなコード依存関係の解析や評価などの作業を行い過ぎたことにより引き起こされます。
一般的な解決策は、非同期に外部リソースにアクセスして起動をブロックしないようにするか、アプリケーションコードの量またはその依存関係を減らすことです。
アプリケーションのブートにさらに多くの時間が必要な場合、ブートタイムアウトツールを使用して上限を増やすことができます。ただし、一般的に起動時間が遅いとアプリケーションのデプロイが困難になり、dyno のエラーからのリカバリにも時間がかかるため、これは一時的な解決策としてください。
1 つの例外は、Java buildpack、Gradle buildpack、heroku-deploy Toolbelt プラグイン、または Heroku Maven プラグインを使用したアプリの場合であり、割り当てられたポートにバインドするまで 90 秒が許容されています。
R12 - Exit timeout (終了タイムアウト)
プロセスが、停止する必要があることを示した SIGTERM が送信されてから 30 秒以内に終了できませんでした。プロセスに SIGKILL が送信され、プロセスは強制終了されます。
2011-05-03T17:40:10+00:00 app[worker.1]: Working
2011-05-03T17:40:11+00:00 heroku[worker.1]: Stopping process with SIGTERM
2011-05-03T17:40:11+00:00 app[worker.1]: Ignoring SIGTERM
2011-05-03T17:40:14+00:00 app[worker.1]: Working
2011-05-03T17:40:18+00:00 app[worker.1]: Working
2011-05-03T17:40:21+00:00 heroku[worker.1]: Error R12 (Exit timeout) -> Process failed to exit within 30 seconds of SIGTERM
2011-05-03T17:40:21+00:00 heroku[worker.1]: Stopping process with SIGKILL
2011-05-03T17:40:21+00:00 heroku[worker.1]: Process exited
R13 - Attach error (アタッチエラー)
heroku run
で開始した dyno は、呼び出し側クライアントにアタッチできませんでした。
2011-06-29T02:13:29+00:00 app[run.3]: Awaiting client
2011-06-29T02:13:30+00:00 heroku[run.3]: State changed from starting to up
2011-06-29T02:13:59+00:00 app[run.3]: Error R13 (Attach error) -> Failed to attach to process
2011-06-29T02:13:59+00:00 heroku[run.3]: Process exited
R14 - Memory quota exceeded (メモリ割り当てを超過しました)
dyno は、割り当てを超えたメモリを必要としています。このエラーが起きた場合、dyno は、スワップ領域にページングして実行を続行します。これにより、プロセスのパフォーマンスが低下することがあります。R14 エラーは、合計のメモリスワップ、RSS、およびキャッシュで計算されます。
2011-05-03T17:40:10+00:00 app[worker.1]: Working
2011-05-03T17:40:10+00:00 heroku[worker.1]: Process running mem=1028MB(103.3%)
2011-05-03T17:40:11+00:00 heroku[worker.1]: Error R14 (Memory quota exceeded)
2011-05-03T17:41:52+00:00 app[worker.1]: Working
多数の R14 エラーが発生している場合、アプリケーションのパフォーマンスが大幅に低下する可能性が高いです。R14 メモリエラーを解決する方法は、言語特有です。
- R14 - Memory Quota Exceeded in Ruby (MRI) (Ruby (MRI) でメモリ割り当てが超過しました)
- Java アプリケーションでのメモリ問題のトラブルシューティング
- Node.js メモリ使用のトラブルシューティング
R15 - Memory quota vastly exceeded (メモリ割り当てを大幅に超過しました)
dyno は、割り当てよりも非常に多くのメモリを必要として、過剰なスワップ領域を消費しています。このエラーが発生した場合、dyno はプラットフォームによって SIGKILL
(キャッチもハンドルもできない) で強制終了されます。R15 エラーは、合計のメモリスワップおよび RSS で計算されます。キャッシュは含まれません。
2011-05-03T17:40:10+00:00 app[worker.1]: Working
2011-05-03T17:40:10+00:00 heroku[worker.1]: Process running mem=1029MB(201.0%)
2011-05-03T17:40:11+00:00 heroku[worker.1]: Error R15 (Memory quota vastly exceeded)
2011-05-03T17:40:11+00:00 heroku[worker.1]: Stopping process with SIGKILL
2011-05-03T17:40:12+00:00 heroku[worker.1]: Process exited
Private Space では、メモリ割り当てを超過した dyno はスワップ領域を使用しないため、R14 エラーを出力しません。
メモリ割り当てを大幅に超過した Private Space の dyno は、一般的に R15 エラーを出力しますが、まれに R15 が送信される前にプラットフォームによって dyno がシャットダウンされることがあり、エラーが削除される原因となります。__R15 が出力される場合、これはアプリログストリームにのみ表示され、ダッシュボードのアプリケーション関連のメトリクスインターフェースには表示されません。Private Space dyno から出力される R15 タイプを除くその他のエラーは、アプリケーション関連のメトリクスインターフェースに正しく表示されます。
メモリ割り当てを大幅に超過した Private Space の dyno に対し、プラットフォームは大量のメモリを消費している dyno プロセスを停止しますが、dyno 自体を停止することはできません。
R16 - Detached (分離されています)
外部接続が閉じられた場合、アタッチした dyno は、SIGHUP
が送信された後に実行し続けます。一部のアプリは意図的にこれを行いますが、これは通常誤りです。
2011-05-03T17:32:03+00:00 heroku[run.1]: Awaiting client
2011-05-03T17:32:03+00:00 heroku[run.1]: Starting process with command `bash`
2011-05-03T17:40:11+00:00 heroku[run.1]: Client connection closed. Sending SIGHUP to all processes
2011-05-03T17:40:16+00:00 heroku[run.1]: Client connection closed. Sending SIGHUP to all processes
2011-05-03T17:40:21+00:00 heroku[run.1]: Client connection closed. Sending SIGHUP to all processes
2011-05-03T17:40:26+00:00 heroku[run.1]: Error R16 (Detached) -> An attached process is not responding to SIGHUP after its external connection was closed.
R17 - Checksum error (チェックサムエラー)
これは、ランタイム slug チェックサム検証のエラーを示します。dyno を起動するときに、チェックサムが一致しない、またはチェックサムに別の問題がある場合は、R17 エラーが発生し、dyno は起動できませんエラーに関する詳細については、ログストリームを確認してください。
2016-08-16T12:39:56.439438+00:00 heroku[web.1]: State changed from provisioning to starting
2016-08-16T12:39:57.110759+00:00 heroku[web.1]: Error R17 (Checksum error) -> Checksum does match expected value. Expected: SHA256:ed5718e83475c780145609cbb2e4f77ec8076f6f59ebc8a916fb790fbdb1ae64 Actual: SHA256:9ca15af16e06625dfd123ebc3472afb0c5091645512b31ac3dd355f0d8cc42c1
2016-08-16T12:39:57.212053+00:00 heroku[web.1]: State changed from starting to crashed
このエラーが発生した場合、正しいチェックサムで新しいリリースをデプロイするか、さらに古いリリースにロールバックしてみてください。チェックサムが SHA256 アルゴリズムで正しくフォーマットおよび計算されていることを確認します。チェックサムは、SHA256:
から始まり、圧縮された slug の計算された SHA256 値が続きます。チェックサムを手動で計算しておらず、エラーが発生し続ける場合は、Heroku サポートに連絡してください。
R99 - Platform error (プラットフォームエラー)
R99 および H99 は、Heroku プラットフォームのエラーを表す唯一のエラーコードです。
これは、Heroku プラットフォームでの内部エラーを示します。修正するにはユーザーのアクションが必要なその他のすべてのエラーとは異なり、このエラーはアクションが不要です。すぐに再試行するか、ステータスサイトを確認してください。
L10 - Drain buffer overflow (ドレインバッファオーバーフロー)
2013-04-17T19:04:46+00:00 d.1234-drain-identifier-567 heroku logplex - - Error L10 (output buffer overflow): 500 messages dropped since 2013-04-17T19:04:46+00:00.
生成されているログメッセージ数が、ドレインコンシューマー (ログ管理アドオンなど) で受信できる率を一時的に超過し、Logplex (Heroku のログ記録システム) が率の差を処理するために一部のメッセージを破棄しました。
L10 エラーメッセージの一般的な原因は、ログコンシューマーでの容量の枯渇です。ログ管理アドオンまたは同様のシステムだけが期間あたり非常に多数のメッセージを受け入れられる場合、そのしきい値を超えた後でアプリケーションに L10 が表示されることがあります。
L10 エラーメッセージの一般的なもう 1 つの原因は、dyno のログメッセージの急増です。dyno 出力の各行 (スタックトレースの行など) が単一のログメッセージであり、Logplex では、メモリ内に保持される未送信のログメッセージの合計数が 1024 メッセージに制限されるので、dyno の行の急増により、Logplex でバッファがオーバーフローする可能性があります。ログストリームが追従できるように、Logplex は必要に応じて、古いメッセージを優先してメッセージを破棄し、新しいメッセージを保持します。
アプリケーションによるログ行出力の量の軽減 (複数のログ行を小さな単一行のエントリに凝縮するなど) を調べる必要があることがあります。heroku logs -t
コマンドを使用して、ログのライブフィードを取得し、問題の発生箇所を把握することもできます。すべての dyno が一部のコードパスの複数行スタックトレースを生成する原因となる問題のあるコードパスと同様に、ログメッセージを生成するループ内の単一の dyno スタックが L10 エラーを強制する可能性があります。
L11 - Tail buffer overflow (tail バッファオーバーフロー)
Heroku ログ – tail セッションは、アプリケーションまたはログチャネルで生成されるログの量に追従できず、Logplex は追従するために必要な一部のログ行を破棄しました。このエラーを回避するには、より高速なインターネット接続上でコマンドを実行する (ログを受信できる率を増やす) 必要があるか、ログ記録の量を減らす (ログが生成される率を減らす) ようにアプリケーションを変更する必要があります。
2011-05-03T17:40:10+00:00 heroku[logplex]: L11 (Tail buffer overflow) -> This tail session dropped 1101 messages since 2011-05-03T17:35:00+00:00
L12 - Local buffer overflow (ローカルバッファオーバーフロー)
アプリケーションは、ローカルの配信プロセス (log-shuttle) が Logplex に配信できる速度より高速にログを生成しており、追従するために一部のログ行を破棄しました。このエラーが続く場合は、アプリケーションのログ記録の量を減らす必要があります。
2013-11-04T21:31:32.125756+00:00 app[log-shuttle]: Error L12: 222 messages dropped since 2013-11-04T21:31:32.125756+00:00.
L13 - Local delivery error (ローカル配信エラー)
ローカルログ配信プロセス (log-shuttle) は、Logplex に一部のログを配信できず、それらを破棄しました。これは、一時的なネットワークエラー中や、Logplex サービスの低下中に起きることがあります。このエラーが続く場合は、サポートに連絡してください。
2013-11-04T21:31:32.125756+00:00 app[log-shuttle]: Error L13: 111 messages lost since 2013-11-04T21:31:32.125756+00:00.
L14 - Certificate validation error (証明書検証エラー)
アプリケーションは、有効な TLS 証明書を持っていない TLS syslog ドレインで設定されます。
次の点を確認する必要があります。
- 自己署名証明書を使用していない。
- 証明書が最新である。
- 証明書が既知の信頼できる CA により署名されている。
- 証明書に埋め込まれた CN ホスト名が接続先のホスト名に一致している。
2015-09-04T23:28:48+00:00 heroku[logplex]: Error L14 (certificate validation): error="bad certificate" uri="syslog+tls://logs.example.com:6514/"
L15 - Tail buffer temporarily unavailable (tail バッファが一時的に使用できません)
ログの最後の 1500 行を保存する tail バッファが一時的に使用できません。再度 heroku logs
を実行します。引き続きエラーが発生する場合は、heroku logs -t
を実行して、ログをストリーミングします (tail バッファを使用しません)。