Receipt missing older non-consumable IAPs

About a year ago in my Sandbox account I "purchased" some non-consumable IAPs. Recently, I've been implementing auto-renewable subscriptions and while my receipt has filled up with dozens of subscription transactions, the original non-consumable IAPs appear to be missing from the receipt.


If i try and buy them again, I get a message saying "You already own this. Do you want to get it for FREE?" and of course i acknowledge it and get a new transaction which i handle normally...but if i refresh the receipt, there's still no mention of the IAP.


Lastly, if i do a restore purchases, I get all of the transactions for the IAPs to replay but again, nothing on the receipt about them.


Has anyone experienced this before? I filed a radar bug but who knows.

Replies

Just wanted to chime in and mention I'm dealing with the same issue. I found some info that might suggest it's related to using a production App Store account in the Sandbox environment, but I've been unsuccessful trying to switch over to one of my sandbox accounts. Once/if I'm able to do that, I'll respond if that resolved the receipt issue.

Post not yet marked as solved Up vote reply of tmg Down vote reply of tmg

Have the same problem: old receipt with non-consumables missing. The auto-renewable subscription filled out 😟


I have no solution for that.


EDIT: it's only on a sandbox environment, need to confirm that.

I have precisely the same issue, I've posted it here:

https://forums.developer.apple.com/message/388485#388485


Does anybody have any updates on this?

same. any update?

Having the same issue. And it happens to two of our sandbox accounts, while working properly when using other sandbox accounts.

Do you have any updates on this issue?

Exactly the same here.

Okay, I have the same problem in all my applications, they use the same class for in-app purchases everywhere. Subscriptions work well as do the rest of the purchases, apart from non consumable purchases. The problem occurs frequently, on the accounts of live users who report the problem. The situation looks like this: the user makes a purchase -> transaction, purchase status -> transaction finished. Then the receipt is validated on the Apple server. JSON does not contain this purchase. I contacted Apple support, and also opened a ticket in Feedback Assistent (FB8398377). I have no idea yet why this doesn’t only work with non consumable purchases, but it works perfectly with subscriptions.
Same issue, sandbox environment. All goes well up until restoring purchases, after that all non-consumables are wiped out from the receipt, although I get them in paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) observer method when restoring. I was hoping to rely on receipt as the source of truth but it turns out sadly I can't do that
I have the same issue but with either non-comsumable or subscription when trying to restore products. I have been through Apples sample code here . This sample project works fine except when restoring it only identifies the original purchase, so if there is an upgrade in the subscription it cannot be restored. I can only get one transaction out of it which contains the latest transaction number, latest transaction date, original purchased item ID and original purchase date (nothing in between). I am simulating it on xcode StoreKit only. Any help would be appreciated. I can't get the app on the store without a Restore button.

Same issue, any updates?
Okay, I have the same problems, in huge numbers, in all my applications. The receipt does not contain purchases (nonconsumable) both in the sandbox and in the records of real users. Everything works fine for subscriptions, but doesn't work for purchases, this is not acceptable! I don't understand why Apple is still inactive. Apple hasn't had any updates on this for a whole year.

If you have a lot of purchases, your old transactions are truncated in the sandbox environment. According to Apple:

Receipts for auto-renewable subscriptions can grow over time since the renewal transactions stay in the receipt forever. To optimize performance, the App Store may truncate sandbox receipts to remove old transactions. When validating receipts for transactions made in the sandbox environment, consider creating new test accounts instead of reusing old accounts to test subscription purchases.

[https://developer.apple.com/documentation/appstorereceipts]

The same for the just released app.. :( with two in app-purchases. Non-consumable reported as never purchased, subscription works.

I'm having the same problem and have done some research to find this document.

https://developer.apple.com/documentation/storekit/in-app_purchase/original_api_for_in-app_purchase/persisting_a_purchase.

Does that mean for non-consumable products we have to manage their receipts manually?