沿革とトラブルシューティング
Webhookに届くすべてのリクエストは、受け入れられたか拒否されたかにかかわらず、記録されます。何かが正常に動作しなかった場合は、まず履歴を確認してください。
祈りの言葉を朗読する
**「履歴」**を開き、エントリをクリックしてください。タイムスタンプ、ステータス、発信元、所要時間、ペイロード、(マスクされた)リクエストヘッダー、クエリ文字列、および失敗の場合はエラー内容とすべての再試行記録が表示されます。
| ステータス | 意味 |
|---|---|
| 保留中 | 受理され、キューに入れられましたが、Shopify Flowにはまだ配信されていません |
| 成功 | Shopify Flow トリガーを受け入れました |
| 失敗しました | 配信が恒久的に失敗しました。詳細ページにその理由が表示されています。 |
「Invoked by」列には、呼び出しの元となった場所が表示されます。具体的には、User(外部システム)、Flow(Webhookを呼び出すShopify Flowアクション)、Test(「テスト」ボタン)、またはCURLです。


不採用通知と、その一つひとつが意味すること
拒否されたリクエストは、Shopify Flowには決して届きません。レスポンス本文には、機械可読形式のcodeが含まれています:
| コード | HTTP | 何が問題だったのでしょうか | 修正 |
|---|---|---|---|
webhook_not_found |
404 | ショートコードが不明です | URLをご確認ください。Webhookが削除されている可能性があります。 |
webhook_disabled |
400 | Webhookは無効になっています | Webhookページで有効にしてください |
unauthorized |
401 | トークンがありません、または間違っています | トークンとヘッダー名をご確認ください |
missing_signature |
401 | HMACモード、署名ヘッダーなし | プリセットで指定されている署名ヘッダーを送信してください |
invalid_signature |
401 | 署名が一致しませんでした | 署名用秘密鍵を確認し、転送中に本文が改ざんされていないことを確認してください |
auth_not_configured |
401 | 認証モードが設定されていますが、トークンが保存されていません | Webhookにトークンを保存する |
invalid_json |
400 | 本文は有効なJSONではありません | 有効なJSONを送信するか、本文の実際のContent-Typeを設定してください(フォームデータやXMLも読み取られます)。 |
invalid_body |
400 | フォームまたはXMLの本文を読み取ることができませんでした。あるいは、本文がリテラル「null」となっています。 |
JSONオブジェクト、またはそのContent-Typeに一致する本文を送信してください |
mapping_field_missing |
400 | ペイロードにマッピングされたフィールドが含まれていません | そのフィールドを送信するか、マップ解除してください |
unexpected_fields |
400 | 本文には、マッピングされていないフィールドがあります | それらをマッピングするか、削除するか、または「**カスタムリクエストボディを許可する」**を有効にしてください |
ip_not_allowed |
403 | 発信元のアドレスが、WebhookのIP許可リストに含まれていません | IP許可リスト をご覧ください。 |
invalid_proxy_signature |
401 | アプリのプロキシアドレスが、貴店のドメインを経由せずに直接呼び出されました | アプリに表示されている通りのWebhook URLを正確にご使用ください。詳しくは、CORS、アプリのプロキシURL、およびブラウザからの呼び出し をご覧ください。 |
payload_too_large |
413 | 50KBを超えるペイロードの転送 | 送信量を減らすか、リクエストデータの切り替え機能をオフにしてください |
quota_exceeded |
400 | プランの上限に達しました | プランと利用方法 をご覧ください。 |
ライブリクエストインスペクタ
エディタでWebhookを開いている間、インスペクタにはリアルタイムで到着するリクエストが表示されます。これには、拒否されたリクエストとその理由も含まれます。これは、送信側のデバッグを行う上で、断然最も迅速な方法です。リクエストを送信し、それが正常に届いているかを確認するだけです。
削除された重複項目もここに表示され、その旨が明記されています。詳細は 重複配送防止 をご覧ください。
リプレイ
過去の呼び出しは、その詳細ページから再生することができます。再生を行うと、同じペイロードが同じWebhookを通じて再送信されます。
特に以下の2つの点で非常に優れています:
- **Flowワークフローの構築です。**Webhookトリガーでイベントを記録し、その後、実際の この呼び出しを行うと、Shopify Flowが実際のフィールド名を学習します。
- **ワークフローの障害からの復旧。**ワークフローを修正した後、実行されたイベントを再実行してください。 それは間違っていたとはいえ、
リプレイは履歴上でそのように表示され、ご利用プランのデータ使用量にはカウントされません。
よくある状況
**通知は届きますが、ワークフローは実行されません。**ほとんどの場合、Webhook ID の条件が原因です。Webhook トリガーによるワークフローは、所有している_すべての_ Webhook からイベントを受信するため、特定の Webhook ID に一致する条件を設定する必要があります。詳しくは、初めてのWebhookを作成しましょう をご覧ください。
**ワークフローが2回実行されています。**これは、2つのワークフローが明確な条件設定なしにWebhookトリガーを使用しているか、送信者が再試行を行っているかのいずれかです。履歴を確認すればどちらかがわかります。エントリが2件あるということは、2件のリクエストが届いたことを意味します。「重複配送防止」を有効にしてください。
**履歴には何も記録されていません。**そのリクエストは弊社には届いておりません。URLとショートコードを確認し、送信元側でTLSやDNSに問題がないかご確認ください。
**ステータスが「保留中」のままになっています。**配信はバックオフ機能を用いて再試行されます。恒久的な失敗が発生した場合は、理由とともに「失敗」に切り替わります。保留状態が異常に長く続く場合は、status.codecreationlabs.cloud をご確認ください。

