Sandbox products load, but purchases fail with productUnavailable

We have a new iOS app in App Store Connect with six consumable in-app purchases.

Environment:

  • Bundle ID: live.mymi.ios
  • TestFlight version: 1.0.4 (70)
  • Storefront: KOR
  • Environment: Sandbox
  • Example product ID: ios_spark_5000

StoreKit product queries return all six products with localized KRW prices. For example, ios_spark_10000 is returned as ₩12,000.

However, requesting a purchase fails with Product.PurchaseError.productUnavailable / “This item is not available.”

The issue can also be reproduced independently of the app: Settings > Developer > Sandbox Apple Account > Test Transactions

Entering bundle ID live.mymi.ios and product ID ios_spark_5000 is rejected with a message stating that the product ID or bundle ID is invalid.

The previous app/product pair live.mymi.app + spark_5000 still works on the same device and with the same Sandbox tester.

We verified the following:

  • Paid Apps Agreement, banking, and tax information are active
  • The explicit App ID has the In-App Purchase capability enabled
  • The TestFlight build uses the correct bundle ID
  • Product pricing, localization, and availability in all 175 storefronts are configured
  • All six IAPs are attached to the first app version review submission
  • No local StoreKit configuration is involved

This has persisted for multiple days. It appears that the product-query catalog contains the products, while the Sandbox transaction service does not recognize the product-to-bundle association.

Has anyone seen this with a newly created App Store app/IAP catalog? Did Apple need to re-index the products?We have a new iOS app in App Store Connect with six consumable in-app purchases.

Environment:

  • Bundle ID: live.mymi.ios
  • TestFlight version: 1.0.4 (70)
  • Storefront: KOR
  • Environment: Sandbox
  • Example product ID: ios_spark_5000

StoreKit product queries return all six products with localized KRW prices. For example, ios_spark_10000 is returned as ₩12,000.

However, requesting a purchase fails with Product.PurchaseError.productUnavailable / “This item is not available.”

The issue can also be reproduced independently of the app: Settings > Developer > Sandbox Apple Account > Test Transactions

Entering bundle ID live.mymi.ios and product ID ios_spark_5000 is rejected with a message stating that the product ID or bundle ID is invalid.

The previous app/product pair live.mymi.app + spark_5000 still works on the same device and with the same Sandbox tester.

We verified the following:

  • Paid Apps Agreement, banking, and tax information are active
  • The explicit App ID has the In-App Purchase capability enabled
  • The TestFlight build uses the correct bundle ID
  • Product pricing, localization, and availability in all 175 storefronts are configured
  • All six IAPs are attached to the first app version review submission
  • No local StoreKit configuration is involved

This has persisted for multiple days. It appears that the product-query catalog contains the products, while the Sandbox transaction service does not recognize the product-to-bundle association.

Has anyone seen this with a newly created App Store app/IAP catalog? Did Apple need to re-index the products?

There was an outage around that time period. If this is still reproducible please file a feedback assistant with a sysdiagnose and screen recording.

How to File Feedback assistant ticket?
https://feedbackassistant.apple.com/

  • Login with your developer account,
  • Choose "iOS & iPadOS”
  • Choose AppStore
  • “Incorrect & Unexpected behavior"
  • Input the issue description and title.
  • Upload attachments
  • Click “Submit”
  • Copy the Ticket ID “FBxxxxxxx” and let us know.

To capture a system diagnose log.
https://developer.apple.com/bug-reporting/profiles-and-logs/?platform=ios