# webhookの失敗した配信の処理

GitHub は失敗した Webhook 配信を自動的に再配信しませんが、失敗した配信は手動で処理することも、コードを記述して処理することもできます。

## Webhook 配信の失敗について

Webhook の配信は、複数の理由で失敗する可能性があります。 たとえば、サーバーがダウンしているか、10 秒の応答に時間がかかる場合、GitHub は配信をエラーとして記録します。

GitHub は、失敗した配信を自動的に再配信しません。

## 配信失敗の処理

失敗した配信は手動で再配信できます。 詳しくは、「[Webhook の再配信](/ja/webhooks/testing-and-troubleshooting-webhooks/redelivering-webhooks)」をご覧ください。

失敗した配信をチェックし、失敗した配信を再配信しようとするスクリプトを記述することもできます。 スクリプトはスケジュールに従って実行し、次の操作を行う必要があります。

1. GitHub REST API を使用して、スクリプトが最後に実行されてから試行されたすべての Webhook 配信に関するデータをフェッチします。 詳細については、「[リポジトリ ウェブフック の REST API エンドポイント](/ja/rest/webhooks/repo-deliveries#list-deliveries-for-a-repository-webhook)」、「[組織の Webhook の REST API エンドポイント](/ja/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook)」、「[GitHub App Webhook の REST API エンドポイント](/ja/rest/apps/webhooks#list-deliveries-for-an-app-webhook)」を参照してください。

   GitHub Marketplace webhooks または GitHub Sponsors webhook に関するデータを取得する API エンドポイントはありません。

2. フェッチされたデータを調べて、配送が失敗していないかを確認してください。 配信に失敗した場合のデータには `status`でない値`OK`が含まれます。

3. 失敗した配信を再配信するには、GitHub REST API を使用します。 詳細については、「[リポジトリ ウェブフック の REST API エンドポイント](/ja/rest/webhooks/repo-deliveries#redeliver-a-delivery-for-a-repository-webhook)」、「[組織の Webhook の REST API エンドポイント](/ja/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook)」、「[GitHub App Webhook の REST API エンドポイント](/ja/rest/apps/webhooks#redeliver-a-delivery-for-an-app-webhook)」を参照してください。

サンプル スクリプトについては、以下を参照してください。

* [リポジトリの Webhook の失敗した配信を自動的に再配信する](/ja/webhooks/using-webhooks/creating-a-script-to-automatically-redeliver-failed-deliveries-for-a-repository-webhook)
* [組織の Webhook の失敗した配信を自動的に再配信する](/ja/webhooks/using-webhooks/creating-a-script-to-automatically-redeliver-failed-deliveries-for-an-organization-webhook)
* [GitHub App webhook の配信失敗を自動的に再配信する](/ja/webhooks/using-webhooks/creating-a-script-to-automatically-redeliver-failed-deliveries-for-a-github-app-webhook)

Webhook の配信が繰り返し失敗する場合は、原因を調査する必要があります。 失敗した配信ごとに、失敗の理由が示されます。 詳しくは、「[Webhook のトラブルシューティング](/ja/webhooks/testing-and-troubleshooting-webhooks/troubleshooting-webhooks)」をご覧ください。