StoreKit 2 Returns 0 Products - Subscriptions “Ready to Submit” in App Store Connect

I’m having an issue where Product.products(for:) returns an empty array in sandbox testing, even though my subscriptions appear fully configured in App Store Connect.

Setup:

  • iOS app using StoreKit 2 (async/await)
  • Two auto-renewable subscriptions configured
  • Both subscriptions show “Ready to Submit” status
  • Pricing set for all regions
  • Localization complete (English US)
  • Review screenshots uploaded
  • Review notes added
  • 7-day free trial configured

Testing Environment:

  • Real device (iPhone, iOS 18+)
  • TestFlight build uploaded AFTER subscriptions marked Ready to Submit
  • Sandbox tester account logged in via Settings → Developer → Sandbox Apple Account
  • Cleared purchase history multiple times

What I See:

🛒 Fetching IAP products...
🛒 ✅ Products loaded: 0
🛒 ❌ No products found

What I’ve Tried:

  • Verified Product IDs match exactly (character-for-character)
  • Clean builds and fresh TestFlight installs
  • Multiple sandbox account sign-out/sign-in cycles
  • Cleared sandbox purchase history
  • Waited 24+ hours after metadata completion
  • Same StoreKit 2 code works in another app with non-consumable IAP

Code Sample:

private let productIDs = [
    "com.myapp.monthly",
    "com.myapp.yearly"
]

func loadProducts() async {
    do {
        let products = try await Product.products(for: productIDs)
        print("Products loaded: \(products.count)")
    } catch {
        print("Failed: \(error.localizedDescription)")
    }
}

Questions:

  1. Is there additional propagation time needed for auto-renewable subscriptions vs non-consumables?
  2. Are there any hidden metadata requirements beyond what shows in App Store Connect?
  3. Has anyone experienced this where subscriptions simply never propagate to sandbox?

Any help appreciated. Already submitted a support case to Apple but looking for community insights.

Hello -

Please refer to this Technote Article, and confirm that you have completed all of the necessary setup and configuration steps detailed - including acceptance of the Paid Apps Agreement in App Store Connect.

If you are still having issues, please reply back to this thread and we can provide further follow-up steps.

Thank you.

I am experiencing the exact same issue. I have two subscription groups each with two products and StoreKit fails to load a single product correctly. I have done this countless times before and know what I am doing. There appears to be something wrong going on with App Store Connect currently thats preventing things from working. This needs to be investigated ASAP!

I have the exact same issue and setup as the OP. All configured as per the Apple docs. Consistently getting zero products returned.

Plus, on real device Settings > Developer > Sandbox > Manage > Initiate Purchase fails with incorrect Bundle and/or Prodict ID, but says "Could not complete at this time, please try later" with correct Bundle & Product ID. Later being 3 days so far for me...

Any help please?

Same here. I created the new subscriptions during the recent App Store Connect problem, which was also acknowledged at https://developer.apple.com/system-status/. I encountered a lot of bugs when creating the new subscriptions, but somehow it saved them correctly anyway. I created three new subscriptions, and all have been approved and are ready to sell. However, only one of them is visible in the App Store, and only this one is purchasable by users. I'm pretty sure this is a bug because the subscription that users can purchase is visible on my app's detail page in the App Store, but with one important distinction: It only shows the English default translation, even though the German translation has been approved for my German App Store. This looks pretty broken... I would send you screenshots, but my App Store Connect is down again. 😃 I would be grateful if you could look into this @App Store Commerce Engineer Thanks a lot!

Okay, that was fast! My App Store Connect is loading again (still unusually slow though), and everything seems to be fixed. Now, all purchases are available. Thank you for looking into this!

having the exact same issue as others. app store connect configuration seems to be correct, but StoreKit will not return the products

ok I've managed to get it all working correctly (following from my earlier comment)

I went through the checklist posted by Apple Engineer above

the TechNote checklist at:

TN3186: Troubleshooting In-App Purchases availability in the sandbox | Apple Developer Documentation

The thing that was blocking the products being returned in array was having not filled in ALL of the details needed on the AppstoreConnect > Business page

Namely payment agreement, bank account, tax status statements etc.

After I had done that, about 2 hours later, all my test calls and purchasing views were working and the whole purchase flow as usual for an iOS device

See attached for Sandbox confirmation

Apparently all "Business" info is needed even for Sabdbox transactions.

HTH folks. Shout if I can add any more info

StoreKit 2 Returns 0 Products - Subscriptions “Ready to Submit” in App Store Connect
 
 
Q