RestoreTransactions does not invoke ProcessPurchase on Android

Hi, we would like to restore transactions on Android. We know that “restore transactions” done automatically on new installs but in our case we call it manually on non-first run.
We are using two seperate devices with the same google account. The user makes a non-consumable purchase on Device A after that switches to Device B and makes RestoreTransactions through a UI button. Restore transactions’ callback is invoked (with result = true) but ProcessPurchase is not invoked.

Is it a bug?

Tested with:
Unity Editor 2021.3.32f1
Unity IAP 4.9.4

Anyone?

As far as I remember restore across devices is not clearly supported in Unity IAP, but you might want to try clear Google Play data on Device B first, then push your RestoreTransactions button. If this will not help, you can also try to purchase the same product you have already purchased on Device A and maybe billing system will detect this and restore for free.

The latest thread about the problem is that one I guess:
How to transfer non-consumable on a different device? - Unity Forum

Thanks for the reply but both cases are not suitable for our use cases.

It seems that clearing Google Play data triggers the auto Restore Purchases and solves the problem but asking the user for that is not what we want.

In our case some products may contain other products. For example: “all in one pack” contains all the game items but each item sold separately in the shop. A user may buy “all in one pack” on Device A. If the user tries to buy “all in one pack” in Device B the billing system will prevent duplicate purchase. But if the user tries to buy a single item the billing system will not prevent the purchase.