# Webhookのエラーの原因と統計情報を確認する
Messaging APIでは、Webhookの送信におけるエラーの原因と統計情報を確認できる機能を提供しています。ボットサーバー側の不具合などによりWebhookを受け取ることができなかった場合において、Webhookの送信状況を把握するときなどに役立ちます。
# エラーの統計情報を有効にする
エラーの統計情報の表示は、初期設定では無効になっています。エラーの統計情報を表示するには、LINE Developersコンソールより次の手順を行います。
- エラーの統計情報を表示したいチャネルの設定画面を開く
- [Messaging API設定]タブをクリックする
- [Webhookの利用]をオンにする
- [エラーの統計情報]をオンにする
以上により、エラーの統計情報を表示できます。統計情報を確認するには、[統計情報]タブに移動し、ドロップダウンより「エラー」を選択してください。
エラーの統計情報には実際に送信を試みたWebhookのみが表示されます。Webhook URLを検証した際の疎通確認用のリクエストは成功、失敗にかかわらずエラーの統計情報には含まれません。
# エラーが発生した原因を確認する
エラーの統計情報では、エラーが発生した原因とその詳細を確認できます。原因には、次の4種類があります。
原因 | 説明 |
---|---|
could_not_connect | LINEプラットフォームからボットサーバーに対してWebhookを送信しようとしましたが、ボットサーバーに正常に接続できませんでした。詳しくは、「原因が「could_not_connect」の場合」を参照してください。 |
request_timeout | LINEプラットフォームからボットサーバーに対してWebhookを送信しましたが、ボットサーバーから2秒以内にレスポンスが返されませんでした。詳しくは、「原因が「request_timeout」の場合」を参照してください。 |
error_status_code | LINEプラットフォームからボットサーバーに対してWebhookを送信しましたが、ボットサーバーからHTTPステータスコード200番台以外のレスポンスが返されました。詳しくは、「原因が「error_status_code」の場合」を参照してください。 |
unclassified | 上記に分類できない、不明なエラーが発生しました。詳しくは、「原因が「unclassified」の場合」を参照してください。 |
# エラーの詳細を確認する
エラーが発生した原因ごとの詳細は、次のとおりです。
# 原因が「could_not_connect
」の場合
LINEプラットフォームからボットサーバーに対してWebhookを送信しようとしたが、ボットサーバーに正常に接続できなかった場合、原因はcould_not_connect
になります。この場合における詳細は次のとおりです。
詳細 | 説明 |
---|---|
Connection failed | ボットサーバーへの接続に失敗しました。 |
Connection failed (received GOAWAY) | ボットサーバーへの接続時に、接続が拒否されました。 |
Connection failed (session closed) | ボットサーバへの接続が予期せず終了されました。 |
Connection timeout | ボットサーバーへの接続が一定時間内に完了しませんでした。 |
DNS Query timeout | Webhook URLの名前解決を行いましたが、一定時間内に名前解決を完了できませんでした。 |
Invalid URL syntax | 不正なWebhook URLが指定されています(RFC違反等)。 |
Session protocol negotiation failure | ボットサーバーへ接続しましたが、プロトコルネゴシエーションが失敗しました。 |
No SSL/TLS record | ボットサーバーの応答がSSL/TLSで暗号化されていません。 |
TLS handshake failure | ボットサーバーへ接続しましたが、TLSハンドシェイクが失敗しました。ボットサーバーが「Webhook送信元のSSL/TLS仕様」に対応しているか確認してください。 |
Unknown host | Webhook URLに指定されたホストが見つかりませんでした。 |
# 原因が「request_timeout
」の場合
LINEプラットフォームからボットサーバーに対してWebhookを送信したが、LINEプラットフォームがレスポンスを受け取れなかった、または送信が途中で失敗した場合、原因はrequest_timeout
になります。この場合における詳細は次のとおりです。なお、ボットサーバー側ではWebhookが正常に受信できている可能性があります。
詳細 | 説明 |
---|---|
Request timeout | ボットサーバーに対してWebhookを送信しましたが、一定期間内にレスポンスが返されませんでした。 |
# 原因が「error_status_code
」の場合
原因がerror_status_code
の場合、詳細にはHTTPステータスコードが入ります。
# 原因が「unclassified
」の場合
分類できないエラーが発生した場合、原因はunclassified
になります。この場合における詳細は次のとおりです。
詳細 | 説明 |
---|---|
Session closed unexpectedly | ボットサーバーに対してWebhookを送信しましたが、接続が予期せず途中で切断されました。 |
Stream closed unexpectedly | ボットサーバーに対してWebhookを送信しましたが、ストリームが予期せず途中で切断されました。 |
Unclassified webhook dispatch error | 分類できない想定外のエラーが発生しました。 |
# エラーに備えてWebhookの再送を有効にしておく
あらかじめWebhookの再送を有効にしておくことで、エラーの発生時にWebhookが再送されます。詳しくは、「受け取りに失敗したWebhookを再送する」を参照してください。