App Store rejection: missing Restore Purchases (Guideline 3.1.1)
What App Store Guideline 3.1.1 says
Apple's Guideline 3.1.1 (In-App Purchase) governs how apps unlock digital content and features, and it includes a specific requirement to provide a restore mechanism for restorable in-app purchases. In practice that means apps with non-consumable purchases or auto-renewable subscriptions must let a user restore what they already bought, rather than forcing a second purchase after they reinstall the app or move to a new device.
Apple's subscription guidance reinforces this: the sign-up flow for a subscription should give existing subscribers a way to sign in or restore their purchase. The official text is on the App Store Review Guidelines page, and Section 3 changes over time, so check the current wording for your monetization model.
Why apps get rejected under 3.1.1
Common triggers for a missing-restore rejection:
- A paywall that only offers Buy or Subscribe, with no way to restore an existing purchase.
- A non-consumable unlock, such as a lifetime upgrade, that cannot be recovered after reinstalling.
- A restore action that exists in code but is hidden, unlabeled, or never grants entitlements back.
- A restore button that fails silently during review, which reads as a missing or broken mechanism.
The common thread is that a paying user could lose access to something they already own. Apple treats restore as a basic protection for buyers, so the absence of a working restore flow is enough for a rejection.
How to fix it
- Add a labeled restore action. Place a clear Restore Purchases control where users look for it, typically on the paywall and in settings. Use plain wording so a reviewer finds it immediately.
- Call StoreKit to restore. Wire the action to restore through StoreKit, then check current entitlements and grant access for any active non-consumable or subscription the account owns.
- Grant entitlements back, not a new charge. Restoring should re-unlock owned content without starting a new transaction. Confirm the unlocked state updates in the UI after a restore.
- Test the real path. Reinstall the app or use a different device with the same Apple Account and confirm restore returns access. A silent failure during review counts as missing.
- Point the reviewer to it. In App Review notes, say where the Restore Purchases option lives, so the reviewer does not have to hunt for it.
Submitted is not approved. The reviewer will look for a working restore, so the fix has to actually return access, not just display a button.
How AppFlight helps
AppFlight offers one-click integrations for RevenueCat and Superwall, which sit on top of StoreKit and include restore handling as part of how they manage entitlements, so a restore flow is part of the monetization it wires in rather than something you build from scratch. When Apple returns a 3.1.1 rejection for a missing or broken restore, AppFlight reads the rejection reason, works the fix in the generated Swift, for example adding a labeled Restore Purchases action and the entitlement check behind it, and resubmits. AppFlight does not guarantee approval. The restore has to genuinely return access, and Apple reviews every app and every resubmission.
FAQ
Why was my app rejected for missing Restore Purchases?
Under Guideline 3.1.1, apps that sell non-consumable in-app purchases or auto-renewable subscriptions must give users a way to restore those purchases on a new device or after reinstalling. If a reviewer cannot find a restore option, the app is rejected.
Where should the Restore Purchases button go?
Put a clearly labeled Restore Purchases action where users expect it, commonly on the paywall and in settings. The reviewer needs to find it without guessing, so a visible, labeled control is safer than burying it.
Do consumable purchases need a restore button?
Consumables, like a one-time pack of coins that is used up, are generally not restorable. The requirement applies to non-consumables and auto-renewable subscriptions, which users are entitled to access again after reinstalling or switching devices.