Missing transactions in Sandbox StoreKit IAP receipt

The app I'm currently working on has a mix of non consumable products and auto renewable subscriptions. Looks like after one or two days, purchased non consumable products are removed from the Sandbox receipt. Upon restore the products are provided by StoreKit observer callbacks, but they are still missing from the receipt.

I've tried both local validation and parsing via OpenSSL and the remote validation via Apple servers, the results match: those products are always missing.

Note that this never happens with subscriptions, both expired and valid ones are always present in the receipt.

Another funny detail: products don't go missing all at once, they progressively disappear following the purchase order, as the sandbox test user was being "cleaned up".

Since Apple docs state here that "Non-consumables, auto-renewing subscription items, and non-renewing subscription items remain in the receipt indefinitely" I would expect them to be there.

Does anybody know if this is an expected sandbox behaviour? Is there any official Apple resource stating that it's going to be ok once the app is in production?

Replies

are there any updates on this? I guess I have the same problem.

I don't know what happened, but I have a non-consumable product purchased in sandbox. If I restore / re-buy for free the product and call the apple verify api, I do not get the product inside latest_receipt_info nor in receipt.in_app. (anyways the response says its valid) Even if I call the getTranscationHistory with the originalTranscationId there is no entry for the product....

So the product is missing....

What to do???