Guideline 3.1.2

Guideline 3.1.2(b) - Subscriptions: Users Can Accidentally Subscribe to Multiple Tiers

Medium SeverityMedium FixTypical Fix: 1-3 days0 Reports
Also known as:Users can subscribe to multiple service levels simultaneouslySubscription tiers in separate groups allow duplicate subscriptionsUpgrade/downgrade path does not cancel previous subscriptionMultiple active subscriptions for the same service

Our Take

Apple is rejecting your app because its subscription architecture allows users to accidentally hold multiple active subscriptions simultaneously. This happens when subscription tiers are configured as separate subscription groups in App Store Connect, rather than tiers within the same group. When subscriptions are in the same group, StoreKit automatically handles upgrades and downgrades -- subscribing to a higher tier cancels the lower one. But when they are in separate groups, a user can subscribe to both the Basic and Pro plans at the same time, paying for both without realizing it. This is a configuration issue in App Store Connect, not a code issue. The fix involves reorganizing your subscription products into a single subscription group with proper tier levels. However, migrating existing subscribers requires careful planning.

Resolution Guide

01

Audit your App Store Connect subscription groups

Check if your service tiers (Basic, Standard, Pro, etc.) are in the same subscription group or separate groups. They must be in the same group.

02

Reorganize subscription groups

In App Store Connect, create a single subscription group and add all service tiers as products within it. Set the tier levels (Level 1 = highest, etc.) so StoreKit manages upgrades/downgrades correctly.

03

Handle existing subscribers

Subscribers to the old product IDs will keep their subscriptions. You need server-side logic to:

  • Check for and honor both old and new product IDs
  • - Prevent double-charging by detecting overlapping subscriptions

    - Communicate to affected users about the migration

    04

    Test upgrade/downgrade flows

    In sandbox, verify that subscribing to a higher tier automatically cancels the lower tier, and that downgrades take effect at the next renewal.

    05

    Update your app's subscription logic

    Your StoreKit code may need to handle both old and new product IDs during the transition period.

    Prevention

  • Always configure service tiers within a single subscription group from the start
  • Use separate groups only for genuinely independent services (e.g., a content subscription AND a cloud storage subscription)
  • Test tier upgrade/downgrade flows in sandbox before submission
  • Example Rejection Email

    From:Apple App Review Team
    Subject:Guideline 3.1.2 - Guideline 3.1.2(b) - Subscriptions: User
    Guideline 3.1.2(b) - Business - Payments - Subscriptions We noticed that your app's subscription configuration may allow users to subscribe to more than one level of service at the same time. Specifically, your Basic and Pro subscription plans appear to be in separate subscription groups, which means a user could inadvertently maintain active subscriptions to both plans simultaneously. Subscription tiers that represent different levels of the same service should be configured within a single subscription group to prevent users from accidentally purchasing multiple subscriptions. Next Steps: Please reconfigure your subscription products so that different service levels are within the same subscription group in App Store Connect.

    Before & After

    Before — Rejected

    App Store Connect shows 'Basic Plan' in Group A and 'Pro Plan' in Group B; a user subscribing to Pro while on Basic now pays for both

    After — Approved

    Both 'Basic Plan' and 'Pro Plan' in the same subscription group with proper tier levels; upgrading to Pro automatically cancels Basic at the current period end

    What changed: Service tiers must be in the same subscription group so StoreKit manages upgrades and downgrades, preventing accidental double billing.

    Community Solutions · 0

    Sign in to share your solution.

    More Guideline 3 (Business) rejections

    View all Guideline 3 rejections