"Receipt is missing" eror during App Review on Flutter iOS

  • 5 November 2022
  • 1 reply

Badge +2

I am trying to submit an update to my Flutter app to Apple, but it has been rejected a few times now.

Initially the error was during restorePurchases(), the error was a PlatformException:
PlatformException(0, Unknown error., {readable_error_code: UNKNOWN, code: 0, userCancelled: false, underlyingErrorMessage: The receipt is missing., readableErrorCode: UNKNOWN, message: Unknown error.}, null)

Following the RevenueCat docs about missing receipts, I asked the reviewer to re-login with their Apple account, but the issue persisted. Then a similar issue occurred when the reviewer saw that they could still purchase the product, and so pressed purchase:

PlatformException(9, The receipt is missing., {underlyingErrorMessage: , readableErrorCode: MISSING_RECEIPT_FILE, readable_error_code: MISSING_RECEIPT_FILE, code: 9, message: The receipt is missing.}, null)

According to this Apple tech note (outdated?): “The absence of the appStoreReceipt is typical when the application is installed using Xcode or TestFlight”. It also says “the application can make the SKReceiptRefreshRequest call” to “have iOS present the iTunes User Authentication dialog” which will “attempt to refresh the appStoreReceipt”. I assume this is what restorePurchases() is doing, so I’m confused why this error is still happening for my app in review.

I am using the RevenueCat Flutter package 4.3.0, with Flutter 3.3.5. (Sorry there’s a typo in the title but I can’t edit the title).

1 reply

Userlevel 5
Badge +8

Hey @Jaween!

This is one of those really frustrating things with App Review - there’s no telling if their environment will work well one day vs. another. You might want to request that the reviewer makes a purchase before trying to restore (they use the sandbox environment, too).

In general, the sandbox environment that App Review uses is extremely flaky, and often unstable, and we see errors like this all the time. There’s not much a developer can do except for re-submit, and hope the environment works well the next time (some developers have to submit up to a dozen builds before getting through).

I’d recommend:

  1. Resubmitting the build
  2. Asking the reviewer to make a purchase before restoring
  3. If that doesn’t work, let them know this is a quirk of their own environment
  4. Try recording a video of purchase working well on your device so they can see it’s working as expected