I have recently updated my app to use StoreKit 2 for in-app purchases and, for the most part, everything seems to be working as expected in production. However, I have a single user who is unable to retrieve the in-app purchase product list.
I am making a straightforward call to retrieve the products:
sk2Products = try await Product.products(for: productIdentifiers)
The expected outcome is that it returns the three products that I have for sale. For the user in question, the call does not fail but it returns an empty array.
As far as I can tell, all other users on the same version of the app are having no problem and I am not able to reproduce the issue in the sandbox or in production on my own devices or the simulator. It doesn't make much sense to me how this could be happening to only one user, especially considering that the product request is not even asking for data related to a specific Apple ID. Not to confuse the issue but the same user is also having trouble having his auto-renewable subscription recognized while, again, nobody else seems to be having a problem. Interestingly, the app did recognize the user's subscription for one session but then went back to the same failing behavior that it is now consistently exhibiting. It's possible that StoreKit is doing some kind of local cacheing that is causing this problem but users' subscription information, etc, is fetched on each app launch so the failure is not related to any cacheing being done by the app itself. The StoreKit calls are returning bad data.
Is there anything that a user can do on their device that might make this happen?
Similarly, is there anything I could have the user do to try to clear up the problem? Restarting the device did not help.