Skip to main content
Solved

[iOS] [Sandbox] "Error 8: The receipt is not valid" when Downgrading

  • February 11, 2025
  • 2 replies
  • 88 views

Forum|alt.badge.img+1

Greetings,

 

Initial purchase (Plus; our low tier) is successful. Upgrading (Pro; our high tier) is successful. Upon opening the paywall for Plus to perform a downgrade, it says
 

WARN: User is already subscribed to this product. Ignoring

 

Which is weird, since I have upgraded! Thought revenuecat would revoke the old entitlement and set it to unactive or delete it…. so I waited 5 minutes for it to expire (pre-set by xcode).. and when attempting to downgrade to plus once again, it initially shows the paywall and says it has been successfully purchased and will take an effective after the current (Pro) subscription has ended. Then immediately followed by this error:-
 

[purchases] ERROR: � Product purchase for 'plus_1_year' failed with error:

Error Domain=RevenueCat.ErrorCode Code=8 "The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit."

UserInfo={rc_backend_error_code=7712, rc_response_status_code=422,

NSLocalizedDescription=The receipt is not valid. The purchased product was missing in the receipt.

This is typically due to a bug in StoreKit., NSUnderlyingError=0x2825a3270 {Error Domain=RevenueCat.BackendErrorCode Code=7712

"The purchased product was missing in the receipt. This is typically due to a bug in StoreKit."

UserInfo={NSLocalizedDescription=The purchased product was missing in the receipt. This is typically due to a bug in StoreKit., rc_backend_error_code=7712}},

source_file=RevenueCat/HTTPClient.swift:885, source_function=parseUnsuccessfulResponse(), readable_error_code=INVALID_RECEIPT}

 

Then, it would automatically set the next billing to the Plus (when the current Pro subscription ends)… so I guess it is kinda working? Because it indeed say that it will start in the upcoming billing cycle; since it is a downgrade. But wouldn’t that error occur in production and cause app rejection? Or it is a Sandbox-related error and I should ignore it?

I have also heard that I don’t need to show a downgrade button/paywall … instead, I should just mention the fact they can downgrade by navigating to App store subscription management (that way no error would be shown; assuming it could occur in prod) and the only button I would show is the upgrade (if they are initially on Plus) since it is working fine!

 

I should also mention that I have never received any PRODUCT_CHANGE whatsoever; whether by upgrading or by downgrading. It is either Initial or renewal!

 

 

FYI:

Using Flutter. Using Storekit configurations. I have setup my Sandbox account in Settings > App Store > Sandbox account. I also tried creating a fresh sandbox account. It still results in the same problem.

Assume we have two subscriptions on app store connect:-

  1. pro_1_year (high tier)
  2. plus_1_year (low tier)

*Both are offered for 1 year within the same subscription group.

 

Assume we’ve set two entitlements:-

  1. entitlement_pro (pro_1_year attached product; auto-fetched)
  2. entitlement_plus (plus_1_year attached product; auto-fetched)

Assume we’ve set two offerings:-

  1. plus_paywall (Package attached: plus_1_year)
  2. pro_paywall (Package attached: pro_1_year)

Assume we’ve set two paywalls:-

  1. plus_paywall (Package attached: plus_1_year)
  2. pro_paywall (Package attached: pro_1_year)

 

Thank you in advance.

Best answer by joseph-644a5d

#UPDATE

Apparently, any device below iOS 16 will cause this problem. The one I had was an iPhone 6s (iOS 15.8.3). And when I tried my other iPhone  (iPhone 8 iOS > 15 and bunch of other Simulators)… it worked as intended (I even started receiving PRODUCT_CHANGE).

View original
Did this post help you find an answer to your question?
This post has been closed for comments

2 replies

Forum|alt.badge.img+1
  • Author
  • Helper
  • 1 reply
  • Answer
  • February 11, 2025

#UPDATE

Apparently, any device below iOS 16 will cause this problem. The one I had was an iPhone 6s (iOS 15.8.3). And when I tried my other iPhone  (iPhone 8 iOS > 15 and bunch of other Simulators)… it worked as intended (I even started receiving PRODUCT_CHANGE).


joan-cardona
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • 313 replies
  • February 18, 2025

Hi ​@joseph-644a5d,

Thanks for letting us know! This is going to be helpful for other people.

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