【よくある質問】Webhook

Webhookで同じデータが2回登録されてしまうのはなぜですか?

formrunでは、Webhookの送信後、受信側がデータを受け取っていても、3秒以内に成功レスポンス(2xx)を返せないと、送信が失敗したと判断して自動的に再送を行います。
受信側のシステムが処理に時間がかかっていると、実際にはデータを受け取っていても「タイムアウト」と判定されるため、同じデータが再度送られ、重複登録が起きてしまいます。
※成功レスポンス(2xx)は、リクエストが正常に処理され、期待するデータが返されたことを示すHTTPステータスコードです。

タイムアウトの時間を延ばすことはできますか?

現時点では、全ユーザー共通のタイムアウト設定(接続:3秒、読み取り:3秒)の変更は行っておりません。
タイムアウト値を延ばすと、処理の遅い送信が原因で他のWebhook送信にも遅延が生じるリスクがあるため、仕様として設定しています。

上記はどうすれば解決できますか?

受信側のシステムの実装を見直すことで対応できます。
Webhookを受け取ったら、業務処理の完了を待たずに、まずHTTP 2xxなどの成功レスポンスをすぐ返すようにしてください。
その後の処理(データの保存・連携など)はバックグラウンドで続けて行う設計にすることで、タイムアウトによる誤判定と再送を防ぐことができます。
 
 
💡
関連ページ