Shop/update fires about once a minute with only updated_at changed — what triggers it?

Hi everyone,

This looks related to Store is spamming shop_update webhook, anyway to stop?, but we’ve narrowed it down a bit further, so I’m starting a new thread.

What we see

  • On a public app subscribed to shop/update (app-scoped via shopify.app.toml, API version 2026-07, delivered through Google Pub/Sub), a few stores send shop/update about once a minute, around the clock. The busiest one sent about 42,000 in 30 days.
  • These aren’t retries or duplicate subscriptions:
    • Nearly every delivery has its own X-Shopify-Webhook-Id and X-Shopify-Event-Id.
    • X-Shopify-Triggered-At is within a minute of when we receive it.
  • We compared consecutive payloads from one of these stores. Across 9 deliveries, the only field that changed was updated_at. Every other field in the payload was identical.
  • Our app doesn’t write to the Shop on these deliveries. Our handler only reads the Shop.

Questions

  1. What kinds of changes cause shop/update to fire when no field in the payload changes except updated_at? For example, does writing a shop-owned metafield (by another app, via metafieldsSet) bump the Shop’s updated_at and fire shop/update? Are there other Shop-level writes not visible in the payload that do the same?
  2. If we set include_fields without updated_at, how long is the window in which identical payloads are debounced? Would deliveries about a minute apart be dropped?
  3. Is there a supported way to get shop/update only when specific fields change (for example plan_name)? Events doesn’t seem to support a Shop topic yet.

Thanks!


Hey @ogasawarakyohei have you considered checking the new event system?

They allow you to narrow down what exactly you want to trigger a given event, and what to include in the payload using graphql query.

Unfortunately there are no shop topics available in Events yet.