AppStore rejection: The receipt is not valid

  • 31 October 2021
  • 39 replies
  • 5799 views

Userlevel 1
Badge +5

Hello RevenueCat Team,
Almost each release we got reject when Apple review team try to make a purchase. I don't understand the reason, but looks like something wrong with receipt.
I'm attached the rejection screen and the error desc, please, have a look.
What do you think?

 

They say:

We found that your in-app purchase products exhibited one or more bugs when reviewed on iPad running iOS 15.1 on Wi-Fi.

Specifically, an error occurred after we purchased the subscription.

Next Steps

When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead.

 

Thank you,
Yauheni @ MoonX Team

ryan 2 years ago

Heard from another developer that they hit this rejection, but next release was approved (no code changes): 

 

View original

39 replies

Badge +3

This was the reply from Apple review team

Thank you for your response. We tried the In App Purchase with a different Deve and observed the same issue.

After purchasing the In App Purchase, the App Store authenticated and confirmed, but the app failed to validate the receipt. Attempting to repurchase reported a successful purchase from the App Store, but the app did not implement the purchased features.

We look forward to reviewing your app once these issues have been addressed and the new build has been received and queued for review. Please be sure to resubmit any In App Purchase products along with the revised binary.

Best regards,

App Store Review


I guess revenuecat should do something about this. It’s matter of luck, I can get approved one time and get rejected 10 times for the same reason

Badge +3

Adding my 2 cents here.

  1. When checking the user’s entitlement I used ‘isActiveInCurrentEnvironment’ instead of ‘isActive’.
     
  2. When replying to the reviewer, I told them that I’m using RevenueCat and pointed to this article: https://www.revenuecat.com/v3.1/docs/app-store-rejections. Under the “Other tips” section they specifically saying that there’s nothing to do with such rejection.

I don’t know if what I did helped or was it just voodoo/luck, but the version got approved.

 

Badge +1

I also had this issue. After a number of rejections, the only thing that seemed to help was setting 

usesStoreKit2IfAvailable: false

in the RC config (in Purchases.configure).

Of course, it could just be coincidence...

Badge +4

We’ve got exactly the same reason of rejection from App Store. @Yauheni Yarotski Have you already appeal to reviewer? Please could you share some info if you get an update on this issue. Thanks!

I’ll try to appeal as well with an info suggested by @ryan ...

Badge

Same issue here, Yesterday I tried appealing the review with Ryan’s comment, but I am still waiting for their response. :fingers_crossed:

Badge

Same issue here, Yesterday I tried appealing the review with Ryan’s comment, but I am still waiting for their response. :fingers_crossed:

I ended up submitting a new version for review instead of waiting for the appeal and it was approved in a few hours. :grin:

Badge +3

We were just bit by this rejection as well. Message from reviewer: “We discovered one or more bugs in your app. Specifically, we were unable to subscribe, we had an error message.”

 

Checking the logs the error was: “The receipt is missing.”

Badge +3

Now 5 attempts. Works in TFlight. Works on multiple beta testers of mine. This doesn’t appear to be a problem free process on someone’s end given how simple my codebase is. Pretty frustrating. 

Badge +2

My macOS app has now been rejected twice for this “invalid receipt” error. I’m using RevenueCat on Flutter. It works fine when I test it via TestFlight, but Apple’s app review people keep hitting this error.

Has anyone found a solution?

Badge +2

Thanks very much, Keith. My issue wasn’t exactly that, but I was calling my restore purchase function on load to check for the user’s license. This must have put the receipt into some kind of bad/invalid state so that when they went to purchase it, it failed.

Your suggestion spurred me to adjust that and it seems to have resolved the issue. Thank you!

Badge

The same happened to our App two days ago, we just resolved it.

This is how we did it.

First to know if you are having the same issue or something else, our payments did work perfectly inside TestFlight and the issue only happened inside the AppStore.

If this is the case, then you should see a "ready for sale" in the left upper corner.

However, if we checked the in-App payments under subscription groups it still said "waiting for review"

Sending the app into a new version review did not resolve the issue.

Solution: We opened a dispute and chatted with the support https://developer.apple.com/contact/app-store/?topic=appeal

We arranged a Callback with this hotline https://developer.apple.com/contact/

Be specific with the problem, and if possible send screenshots. It took two days to resolve.

However, for some the only thing that seemed to work was deleting the in-app payments and setting them up new before submitting a new build. https://developer.apple.com/forums/thread/35757

Good Luck

Userlevel 1
Badge +5

2 months on from the last post on this thread I have encountered the same issue.

I have asked the reviewer to re-sign in with their Apple account.  I’m waiting on the reviewers response.

Can RevenueCat shed anymore light on this two months on?

Badge +5

I had this issue so I’ll chime in as maybe it will help others.
I went through 4 or 5 submissions before it got approved.

In my case they were having trouble getting through the paywall (I believe) or the subscription process wasn’t working. We weren’t able to replicate any issues and our subscription workflow is fairly standard. I’m not sure how they test their apps. I did a bunch of usability improvements to the paywall page (like a spinner while things are loading). The change I did that finally got us over the hump was just displaying the full error to the user on the paywall page if the subscription fails. (In our case with flutter this is catching the exception to the revenuecat calls and showing the full text to the user). Our thinking was that we would then have the screenshot they provide as part of the review to see what error they’re hitting.

However, after this change it was accepted. My guess is that they saw an error and realized what the issue was and changed something in their test environment to work around it. It could have been something as simple as not having online connectivity during the review, which I believe might have been the issue as I’ve seen others mention it.

It may have also just been luck and they happened to accept it.

Badge +2

I am got the same reason for rejection. Here are some additional comments from the reviewer, that I don’t know how to resolve, seems like something RevenueCat need to add ( and document) on their end.

Any one has any recommendations? 

 

We found that your in-app purchase products exhibited one or more bugs which create a poor user experience. Specifically, your app loaded onto a blank screen when we tapped “Subscribe”. Please review the details and resources below and complete the next steps.

Next Steps

When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead.

 

I would appreciate any recommendations to resolve this. 

 

Badge

Same Issue.

What should I do?

 

--------------------------------------------------------

Bug Fix Submissions

The issues we've identified below are eligible to be resolved on your next update. If this submission includes bug fixes and you'd like to have it approved at this time, reply to this message and let us know. You do not need to resubmit your app for us to proceed.

Alternatively, if you'd like to resolve these issues now, please review the details, make the appropriate changes, and resubmit.
 

Guideline 2.1 - Performance - App Completeness


We found that your in-app purchase products exhibited one or more bugs which create a poor user experience. Specifically, your app displayed an error message when we tried to purchase the subscription plan. Please review the details and resources below and complete the next steps.

Review device details:

- Device type: iPad
- OS version: iOS 17.2

Next Steps

When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead.

Resources

- Learn how to set up and test in-app purchase products in the sandbox environment.
- For more information on receipt validation, see the In-App Purchase FAQ.
- If your app makes a SKReceiptRefreshRequest call and fails, do not retry the call. Assume the user does not have access. Continue by making the addPayment call.
- If your app makes a SKReceiptRefreshRequest call to restore previously purchased in-app purchases, make sure the app calls restoreCompletedTransactions when the user selects the "Restore" button.

Please see attached screenshot for details.

Badge

Just to add another report, I’ve also had one app rejected by Apple now on multiple occasions for this error: “RevenueCat.ErrorCode 8 - The receipt is not valid”

When I test with the Sandbox environment locally, everything works on both devices and simulators but Apple continually reject the app, even after pointing them to the RevenueCat document.

This is extremely frustrating. 

 

Same Issue.

What should I do?

 

--------------------------------------------------------

Bug Fix Submissions

The issues we've identified below are eligible to be resolved on your next update. If this submission includes bug fixes and you'd like to have it approved at this time, reply to this message and let us know. You do not need to resubmit your app for us to proceed.

Alternatively, if you'd like to resolve these issues now, please review the details, make the appropriate changes, and resubmit.
 

Guideline 2.1 - Performance - App Completeness


We found that your in-app purchase products exhibited one or more bugs which create a poor user experience. Specifically, your app displayed an error message when we tried to purchase the subscription plan. Please review the details and resources below and complete the next steps.

Review device details:

- Device type: iPad
- OS version: iOS 17.2

Next Steps

When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead.

Resources

- Learn how to set up and test in-app purchase products in the sandbox environment.
- For more information on receipt validation, see the In-App Purchase FAQ.
- If your app makes a SKReceiptRefreshRequest call and fails, do not retry the call. Assume the user does not have access. Continue by making the addPayment call.
- If your app makes a SKReceiptRefreshRequest call to restore previously purchased in-app purchases, make sure the app calls restoreCompletedTransactions when the user selects the "Restore" button.

Please see attached screenshot for details.

First, create a new Sandbox account. Second, in "app review reject," you need to explain your shortcoming and give them a Sandbox account.
end, wait for Apple's response.

Badge +7

Starting last week our updates have been rejected on BOTH the App Store and Google Play. We made no changes to the subscription code, and everything works fine on TestFlight.

Error 9: RCPurchasesErrorDomain

We’ve updated to the latest SDK, but we’re still getting rejected with the same error.

Has anyone found a solution?

Badge +4

We have overcome rejections two times now by providing a new test account under the "Sign-In Information" section. To avoid problems, we now always create a new test account (with the same credentials) for App Review.

Badge +3

I just got the same rejection message - When validating receipts on your server, your server needs to be able to handle a production-signed app getting its receipts from Apple’s test environment. The recommended approach is for your production server to always validate receipts against the production App Store first. If validation fails with the error code "Sandbox receipt used in production," you should validate against the test environment instead.

same issue here.

I got 10+ rejections and I tried all posted in this community.
1. asked to re signin to the reviewers.
2. uploaded the builds that working on my side.
3. recreated the subscriptions.
4. provided the sandbox account.
5. usesStoreKit2IfAvailable in Configure.
6. explained to the reviewers that RevenueCat automatically handles sandbox and production purchases.

​​​​​​​But nothing helped me.
 

In the screenshot they attached, it says this error.
“There was a problem with the App Store. Problem communicating with the Store when trying to validate the receipt.”

I guess it is System Error from StoreKit.

What should I do for now?
I am almost dead and I am doubting if it is the right way to use the RevenueCat for the paywall.

Badge +1

I added the following text to the review notes and have not received any rejections in the last 10 updates:

---

Subscription / PayWall

- possible error: the receipt is missing:

    This bug is known in Apple's sandbox test environment, but does not appear in production.

    Nothing has changed in the source code for the IAP. Purchases have been working without problems since we released v3.0

 

    We use RevenueCat.

    In Test-Environments please first buy a subscription before restoring purchases.

    In production environments this works fine.

    We have no issues with our customers buying <app name>.

    https://community.revenuecat.com/sdks-51/missing-receipt-leading-to-many-app-store-rejections-2321

---

Maybe this can help.

Badge +1

I get also the same rejection. Have solved the problem?

Userlevel 5
Badge +9

Seems like there’s a handful of developers hitting this error: 

 

Can you ask the reviewer to re-sign in with their Apple account? 

Badge +4

Hi, I have the same problem. I told them to login again with @ryan suggestion but the problem still persists. Why does this problem occur? Can you help us solve it?

Reply