Webhook not delivered
If your system does not receive events (e.g. completed call or order outcome), the problem is almost always on the receiving endpoint side or its availability. This page helps diagnose it. Full event types and delivery mechanics are in webhook documentation.
Shopify Operator — sync status and webhook health on store side. (illustrative screenshot — in progress)
Most common causes
| Cause | Symptom | What to do |
|---|---|---|
| Endpoint unavailable | no response / timeout | verify address is up and responds quickly |
| Server error (5xx) | event rejected by your server | fix receiving application error |
| No HTTPS | event not sent | endpoint must use https:// |
| Private/local address | event blocked | use public address — private and local addresses are blocked |
| Wrong response | retries despite receipt | return 2xx immediately after accepting event |
How to diagnose
Check address and protocol
Ensure endpoint is public, uses HTTPS, and does not point to private or local address (blocked for security).
Verify server response
Server should return 2xx within the time limit. 5xx or slow response counts as failed delivery.
Review delivery history
Check event status and response codes in delivery history to see where delivery failed.
Retries and replay
After failed delivery events are retried on a schedule with increasing intervals. When the endpoint is fixed you can replay an event instead of waiting for the next attempt.
Design the receiver idempotently — the same event may arrive more than once (on retries or replay). Identify events by ID and ignore duplicates instead of processing again.
When contacting support prepare event ID and approximate timestamp — that helps locate the specific delivery quickly.