Unity IAP Google Play duplicate transaction on restore purchases

Hi there,

Been working recently on a game with Unity IAP integrated. Implemented IStore… interface, all fine, everything works. Tested, can buy ‘unlock all levels’ (non-consumable). Restoring worked great as well.

However. As soon as I have started to use another testing device (just another phone in my case), things went weird.

Here is what’s given: 2 android phones using the same gmail.com account.

I buy my non-consumable product on device A, goes good. Restart the game on device A, purchases are restored, no errors. Install the game onto device B, run, purchases are restored, great. Both device are sort of in sync regarding versions. I release a new version of the game. I update the game on device A, everything works fine, restoring has no errors. Then I update the game on device B, run it and I see my levels are locked, clicking unlock does not bring me to the Google purchase screen, instead Duplicate Transaction error is thrown. Apparently there is a check for a dupe and it brings me to OnFailure handler. How come it didn’t pick up my successful transactions on the first run?

Has anyone experienced this? I hope yes.
Any ideas are appreciated.

Hi George (@george_vasilchenko),
I’m having the exact same problem. Some (but not all) of our users report that they cannot repurchase the full game upgrade and that they get the “duplicate transaction” error.
Problem is, this only happens to some users and we were never able to reproduce the error (on more than 10 different devices). There is as far as I can tell no clear pattern on the users that encounter the issues: happens on different phones, even high-end, and on different Android versions. It’s like its random.
Did you manage to resolve this issue?