shopPolicyUpdate after subscription cancel — what's the right pattern?

Hey, building an app for the App Store (compliance scoring + cookie banner) and have a few review-related questions I’d love to get clarity on before submitting.

Pro tier publishes a tracker-aware privacy policy to /policies/privacy-policy via shopPolicyUpdate. That needs write_legal_policies. The wizard has a clear “Publish to your store” button so the merchant explicitly triggers the publish.

The main thing I’m stuck on: what happens to the policy content when the merchant’s Pro subscription ends?

I see three paths:

  1. Leave whatever we last wrote in place. Merchant inherits it as their content, we stop updating.
  2. Replace the body with a factual “this policy is no longer being maintained as of [date]” notice that points them to Settings → Legal → Privacy.
  3. Set body to empty (there’s no shopPolicyDelete mutation).

Partner Support thinks option 2 is the safest bet. I want to double-check a few specifics with someone closer to the review team:

  1. Is it ok to do the shopPolicyUpdate write on a webhook/subscription_updated event with status: cancelled, without the merchant taking action at that exact moment? They click cancel days earlier and we send dashboard + email warnings before the period actually ends. The actual write happens when Shopify fires the webhook at period end.
  2. Pre-expiry I’m planning to give the merchant a choice — keep the generated content as their own, or revert to the factual notice. Default is the notice if they don’t choose. Anyone see a problem with that pattern?
  3. For write_legal_policies — main feature is the compliance score and banner, policy generation is one of several Pro features. This scope is only used for that one feature, with explicit merchant approval per publish. Is that enough justification, or is there more reviewers expect to see?
  4. Anything that’s bit other devs about shopPolicyUpdate that’s not in the docs? Specifically thinking about multi-locale (translationsRegister?) and what happens if the merchant edits via admin between our writes.

Thanks, much appreciated.

Hey @jamie1234, once your app writes something to the store (products, orders, policies), it’s the merchant’s data. The app uninstall flows only auto-clean webhook subscriptions and admin links, so the policy you wrote with shopPolicyUpdate stays put when the subscription ends. For content that should disappear with the app, that’s what theme app extensions exist for.