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

Have your agent know this before it fails

claude mcp add --transport http footgun https://getfootgun.com/api/mcp