Skip to main content
Question

Unable to Purchase Non-Consumable Product via Paywall (lifetime)

  • July 22, 2025
  • 1 reply
  • 63 views

Forum|alt.badge.img+1

Hi, I'm building an iOS app using RevenueCat + Capacitor and encountered an issue when purchasing a non-consumable product (lifetime) via RevenueCat Paywall.

I have three products configured in App Store Connect and RevenueCat:

  • com.ddtapp.premium.weekly (weekly subscription)

  • com.ddtapp.premium.monthly (monthly subscription)

  • com.ddtapp.premium.lifetime (non-consumable)

When I use the Paywall to purchase weekly and monthly, everything works as expected — the payment sheet appears and the purchase succeeds.

However, when I try to purchase lifetime, the payment sheet does not appear, and I get the following error repeatedly:

DEBUG: Will execute purchase logic provided by RevenueCat.

INFO: 💰 Purchasing Product 'com.ddtapp.premium.lifetime' from package in Offering 'default'

DEBUG: ℹ️ Found 0 unsynced attributes for App User ID: $RCAnonymousID:5d717e11cc7a….

DEBUG: ℹ️ TransactionPoster: handling transaction '20000009...' for product 'com.ddtapp.premium.lifetime' (date: 2025-05-01 13:38:33 +0000) in Offering 'default' with paywall session '4B2EB66A-B5A2-432….'

DEBUG: ℹ️ Skipping products request for these products because they were already cached: ["com.ddtapp.premium.lifetime"]

DEBUG: ℹ️ PostReceiptDataOperation: Started

DEBUG: ℹ️ PostReceiptDataOperation: Posting JWS token (source: 'purchase'):

eyJhbGciOiJFUzI1NiIsIng1YyI6WyJNS….l…….

DEBUG: ℹ️ There are no requests currently running, starting request POST /v1/receipts

DEBUG: ℹ️ API request started: POST '/v1/receipts'

ERROR: 😿‼️ The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit.

DEBUG: ℹ️ API request failed: POST '/v1/receipts' (422): The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit.

Request-ID: '287519e0-4bcf-4d2a….'; Amzn-Trace-ID: 'Root=1-688010d7-4a5d86fb796d15c26ff548f5'

DEBUG: ℹ️ PostReceiptDataOperation: Finished

INFO: 💰 Finishing transaction '200000091...' for product 'com.ddtapp.premium.lifetime'

DEBUG: ℹ️ Serial request done: POST /v1/receipts, 0 requests left in the queue

ERROR: 😿‼️ The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit.

ERROR: 💰 Product purchase for 'com.ddtapp.premium.lifetime' failed with error: PurchasesError(error: The receipt is not valid., userInfo: ["NSLocalizedDescription": "The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit.", "source_file": "RevenueCat/HTTPClient.swift:945", "rc_backend_error_code": 7712, "rc_response_status_code": 422, "NSUnderlyingError": Error Domain=RevenueCat.BackendErrorCode Code=7712 "The purchased product was missing in the receipt. This is typically due to a bug in StoreKit." UserInfo={rc_backend_error_code=7712, NSLocalizedDescription=The purchased product was missing in the receipt. This is typically due to a bug in StoreKit.}, "source_function": "parseUnsuccessfulResponse()", "readable_error_code": "INVALID_RECEIPT"])

 

  • The product com.ddtapp.premium.lifetime is correctly created in App Store Connect.

  • The product is of type Non-consumable, and it has been imported into RevenueCat successfully.

  • I triple-checked the product ID spelling — no typos.

  • I'm testing on a real device using a Sandbox account.

  • I also tried deleting the app and the anonymous user from RevenueCat, but the issue persists.

It seems that only this lifetime product is failing to trigger the purchase sheet.

Any idea what could cause this? Does RevenueCat Paywall have limitations or known issues with non-consumable products?

Thanks!

 

This post has been closed for comments

1 reply

guilherme
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 119 replies
  • July 25, 2025

Hey ​@Chandler Pan ,

Even when everything’s set up correctly, sandbox can fail to include the purchase in the receipt, which leads to the “product missing” error you’re seeing.

This shouldn’t be an issue with RevenueCat or your config, but more how StoreKit behaves in sandbox - to confirm things are working as expected, we recommend testing through TestFlight or using a StoreKit configuration file in Xcode, as both tend to be much more reliable for this kind of purchase flow testing.

In production everything should work as expected though!

Also worth checking that the product is marked as Ready for Sale (or at least Approved for Testing via a TestFlight build) in App Store Connect. That step becomes essential when you’re preparing for production, so it’s good to get ahead of it now.

More context on the StoreKit Config file here!

Best, 


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings