StoreKit says purchase succeeded but didn't, AppStore.sync() throws error Unable to Complete Request

One user of my app reached out reporting an interesting in-app purchase issue. Has anyone encountered this or have an idea what's going on here?

  1. Proceed to purchase the non-consumable IAP in the app downloaded from the App Store
  2. iOS shows the price sheet as expected
  3. Confirm with the side button
  4. iOS shows an alert "You've already purchased this. Would you like to get it again for free?"
  5. Tap OK
  6. iOS shows an alert "You're all set. Your purchase was successful."
  7. Tap OK
  8. The app's content remains locked
  9. Tap Restore Purchases
  10. iOS shows an alert to sign (with the same account shown in step 2)
  11. Input the password and tap OK
  12. iOS shows an alert "Unable to Complete Request" (which is the error.localizedDescription thrown from AppStore.sync())

@Jordan The "You've already purchased this. Would you like to get it again for free?" message that the person is attempting to purchase a non-consumable product that they have already bought. They are not charged when purchasing an already bought non-consumable product.

<The app's content remains locked> You need to debug your code to figure out why the content isn't unlocked.

Once a person purchases a non-consumable, the content should be available indefinitely in your app. Implement a mechanism that will prevent the app from presenting already purchased non-consumables among items available for sale.

@DTS Engineer Thanks for your response. What's strange is this code has worked for approximately 15,000 other purchases since I shipped it about 2 years ago (migrated to StoreKit 2 from the StoreKit 1 implementation I had in place for about 10 years prior), and it hasn't changed since, so I don't see any issue in my code. I'd like to learn why AppStore.sync() is throwing Unable to Complete Request as that may provide insight into what's going on with this unique issue that seems specific to this user's account/device configuration/history.

StoreKit says purchase succeeded but didn't, AppStore.sync() throws error Unable to Complete Request
 
 
Q