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:-
- pro_1_year (high tier)
- plus_1_year (low tier)
*Both are offered for 1 year within the same subscription group.
Assume we’ve set two entitlements:-
- entitlement_pro (pro_1_year attached product; auto-fetched)
- entitlement_plus (plus_1_year attached product; auto-fetched)
Assume we’ve set two offerings:-
- plus_paywall (Package attached: plus_1_year)
- pro_paywall (Package attached: pro_1_year)
Assume we’ve set two paywalls:-
- plus_paywall (Package attached: plus_1_year)
- pro_paywall (Package attached: pro_1_year)
Thank you in advance.