When can I expect a valid iOS receipt?

I have an app with an IAP that unlocks some more features. To check if a user is PRO I am using local receipt validation. After users udpate our app we had some users complaining about them not being PRO any more. Never many users. But after the last update of our app we got a lot of user complaints!!! (iOS9)


The problem is where should I start searching for the problem? I can't simulate that update to figure out what's going on here.... And it's also not all users affected, only some...

I now would like to ship an update that fixes the problem by just restoring previous purchased content. The thing is that as it shows the iTunes Credentials Alert, I'd like so limit it to users with those kind of problems.


So, my question: When can I expect a valid iOS receipt that contains all the In-App-Purchase information of the user?

If the user first downloads my app without even opening it, will there be a valid receipt on his first launch? Or will there only be a receipt for those users who purchased something?


Thanks for all hints.

You wrote: "....it shows the iTunes Credentials Alert, I'd like so limit it to users with those kind of problems. So, my question: When can I expect a valid iOS receipt"

An app will usually have a receipt attached to it. It will not have a receipt if it was loaded into the device certain ways (I forgot which ways) and it will not have a current receipt if a purchase was made on a different device after it was installed. So my question back to you is - why are you worried about this? On first install query for a receipt and if there is a receipt examine it for the upgrade but if there is no receipt DO NOT refresh (SKReceiptRefreshRequest) until the user asks to do that. Have a path that allows the user to ask to restore the upgrade for example : A "Get upgrade info" button explains the upgrade and gives the user a choice of "Get price" and "I already upgraded" and "Not now". Once they chose "I already upgraded" you can do a restoreCompletedTransactions or a SKReceiptRefreshRequest and they won't be surprised by a request to log into the store.

When can I expect a valid iOS receipt?
 
 
Q