Shopify · api · fg-0336
Shopify webhooks silently stop arriving after the endpoint was slow or down for a few hours
webhookSubscriptions no longer lists a topic your app created at install
Verified 2026-10-15 · Confirmed by 0 builders · Trust 50/100
Cause
Shopify treats no answer within five seconds as a failure, retries 8 times over 4 hours, and then deletes subscriptions created through the Admin API. Retries also mean the same event can arrive twice.
Fix
Acknowledge with 200 right away and process from a queue, dedupe on X-Shopify-Webhook-Id, and run a reconciliation job. Prefer shopify.app.toml subscriptions, which Shopify does not delete on failure.
Apply
app.post('/webhooks', verifyHmac, async (req, res) => {
res.sendStatus(200)
const id = req.get('X-Shopify-Webhook-Id')
if (await seen(id)) return
await queue.add({ id, topic: req.get('X-Shopify-Topic'), body: req.body })
})Affects: Shop-specific webhook subscriptions created with the Admin API, all versions
Sources
- https://shopify.dev/docs/apps/build/webhooks/subscribe/https
- https://shopify.dev/docs/apps/build/webhooks/subscribe
Have your agent know this before it fails
claude mcp add --transport http footgun https://getfootgun.com/api/mcp