EDIT : It turns out this issue wasn't occurring on iOS 15.x, but the reviewers were testing on iOS 16, which I managed to reproduce after upgrading to iOS 16. Updating to the latest Playfab SDK seemed to resolve the issue.
I am busy submitting my game to the App Store, and got the following decline reason from Apple in my latest build...
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, after we purchased the available IAPs they didn’t reflect into the app (no coins added, no gold, etc). Please review the details and resources below and complete the next steps.
Review device details: - Device type: iPad - OS version: iOS 16.3 - List item
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.
The receipt validation works fine in the sandbox environment, and I tested all my IAPs and they all work as intended.
I have also tested the Distribution build on Test Flight without any issues.
I looked in Data Explorer and I only see successful receipt validations for Sandbox.
Is there a way to see failed receipt validations somehow? I am using Unity, and calling PlayFabClientAPI.ValidateIOSReceipt