Android - Losing connection during purchase causes issues

This is related to: UNITY IAP (Android) - Item already own wrong message
IAP 1.22.0 claims to have “Fixed GooglePlay store consumable products already owned error due to network issue”. Unfortunately we are still experiencing this issue.

When you lose internet connection during the purchase of a consumable, the purchase will fail and attempting the purchase (of the same sku) again will trigger an ‘Item already owned’ error message from Google. Restarting the game does not consume this purchase.

If, however, another successful purchase is made, the previous one will be consumed properly on the next restart.

Steps to reproduce:
-Trigger a purchase
-Click 1-tap buy
-Disable the network
===NOTE: Disabling/enabling wifi on the device itself will not trigger the issue! We used a hotspot for wifi on another device and disabled/enabled that.
-Wait until Google prompts an error.
-Enable the network.
-Keep clicking ok on the google prompts until the purchase succeeded.
-Observe that the purchase failed (and is not fixed by a restart)

This will cause 2 purchases to show up in your Google Play order history for the SKU you tried to purchase, with 1 being labelled ‘Cancelled’.

Logs:

2019-04-30 15:26:29.989 7224-7242/com.gamehouse.originalstories I/UnityIAP: isUnityVrEnabled = false
2019-04-30 15:26:29.994 7224-7242/com.gamehouse.originalstories I/UnityIAP: onPurchaseProduct: diamonds_250
2019-04-30 15:26:29.994 7224-7242/com.gamehouse.originalstories I/UnityIAP: ITEM TYPE:inapp
2019-04-30 15:26:30.017 7224-7224/com.gamehouse.originalstories I/Unity: windowFocusChanged: false
2019-04-30 15:26:30.019 7224-7224/com.gamehouse.originalstories I/Unity: onPause
2019-04-30 15:26:30.025 7224-7242/com.gamehouse.originalstories I/Unity: purchase({0}): diamonds_250
2019-04-30 15:26:30.100 7224-7242/com.gamehouse.originalstories D/Unity: Sensor : Accelerometer ( 1) ; 0.010000 / 0.01s ; Accelerometer Sensor / HTC Group Ltd. 
2019-04-30 15:26:30.139 7224-7788/com.gamehouse.originalstories W/Ads: Got on activity created
2019-04-30 15:26:30.139 7224-7224/com.gamehouse.originalstories I/UnityIAP: Creating purchase activity
2019-04-30 15:26:30.142 7224-7224/com.gamehouse.originalstories I/UnityIAP: oldSkuMetadata is null
2019-04-30 15:26:30.144 7224-7428/com.gamehouse.originalstories I/UnityIAP: invoking callback
2019-04-30 15:26:30.144 7224-7428/com.gamehouse.originalstories I/UnityIAP: Constructing buy intent for diamonds_250, item type: inapp
2019-04-30 15:26:30.296 7224-7428/com.gamehouse.originalstories I/UnityIAP: Launching buy intent for diamonds_250. Request code: 999
2019-04-30 15:27:00.527 7224-7224/com.gamehouse.originalstories I/UnityIAP: onActivityResult
2019-04-30 15:27:00.530 7224-7224/com.gamehouse.originalstories I/UnityIAP: Purchase data: null
2019-04-30 15:27:00.530 7224-7224/com.gamehouse.originalstories I/UnityIAP: Data signature: null
2019-04-30 15:27:00.530 7224-7224/com.gamehouse.originalstories I/UnityIAP: Purchase canceled - Response: 6:Error
2019-04-30 15:27:00.533 7224-7224/com.gamehouse.originalstories I/UnityIAP: onIabPurchaseFinished: false
2019-04-30 15:27:00.533 7224-7224/com.gamehouse.originalstories I/UnityIAP: 6:Error (response: 6:Error)
2019-04-30 15:27:00.533 7224-7224/com.gamehouse.originalstories I/UnityIAP: Purchase response code:6
2019-04-30 15:27:00.661 7224-7224/com.gamehouse.originalstories I/Unity: onResume
2019-04-30 15:27:00.810 7224-7242/com.gamehouse.originalstories I/Unity: onPurchaseFailedEvent({0}): diamonds_250
2019-04-30 15:27:00.842 7224-7242/com.gamehouse.originalstories I/Unity: Tracking default event: error_purchase_failed
2019-04-30 15:27:00.860 7224-7242/com.gamehouse.originalstories E/Unity: Purchase of 'diamonds_250' failed to initiate. Reason=Unknown
1 Like

Can you post the full logs? It will confirm the IAP version

2019-04-30 15:23:12.876 7224-7242/com.gamehouse.originalstories I/Unity: UnityIAP Version: 1.22.0
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(Object)
    UnityEngine.Purchasing.StandardPurchasingModule:Instance(AppStore)
    UnityEngine.Purchasing.StandardPurchasingModule:Instance()
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:77)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:Inv
2019-04-30 15:23:12.957 7224-7242/com.gamehouse.originalstories I/UnityIAP: IAB helper created.
2019-04-30 15:23:12.966 7224-7242/com.gamehouse.originalstories I/Unity: Adding product 'keypack_5'.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:LogFormat(LogType, String, Object[])
    UnityEngine.Debug:LogFormat(String, Object[])
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:80)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: C Line
2019-04-30 15:23:12.976 7224-7242/com.gamehouse.originalstories I/Unity: Adding product 'keypack_30'.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:LogFormat(LogType, String, Object[])
    UnityEngine.Debug:LogFormat(String, Object[])
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:80)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: C Lin
2019-04-30 15:23:12.978 7224-7242/com.gamehouse.originalstories I/Unity: Adding product 'keypack_150'.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:LogFormat(LogType, String, Object[])
    UnityEngine.Debug:LogFormat(String, Object[])
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:80)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: C Li
2019-04-30 15:23:12.979 7224-7242/com.gamehouse.originalstories I/Unity: Adding product 'diamonds_20'.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:LogFormat(LogType, String, Object[])
    UnityEngine.Debug:LogFormat(String, Object[])
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:80)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: C Li
2019-04-30 15:23:12.983 7224-7242/com.gamehouse.originalstories I/Unity: Adding product 'diamonds_60'.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:LogFormat(LogType, String, Object[])
    UnityEngine.Debug:LogFormat(String, Object[])
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:80)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: C Li
2019-04-30 15:23:12.985 7224-7242/com.gamehouse.originalstories I/Unity: Adding product 'diamonds_250'.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:LogFormat(LogType, String, Object[])
    UnityEngine.Debug:LogFormat(String, Object[])
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:80)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: C L
2019-04-30 15:23:12.987 7224-7242/com.gamehouse.originalstories I/Unity: Adding product 'diamonds_550'.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:LogFormat(LogType, String, Object[])
    UnityEngine.Debug:LogFormat(String, Object[])
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:80)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: C L
2019-04-30 15:23:12.989 7224-7242/com.gamehouse.originalstories I/Unity: Adding product 'diamonds_1500'.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:LogFormat(LogType, String, Object[])
    UnityEngine.Debug:LogFormat(String, Object[])
    pie.Control.PurchasesManager:OnGetStoreItemsResult(List`1) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:80)
    pie.LiveOps.PurchaseHandler:OnGetStoreItemsSuccess(GetStoreItemsResult) (at C:\dev\pie\app\Assets\pie\LiveOps\PurchaseHandler.cs:86)
    PlayFab.Internal.<>c__DisplayClass22_0`1:<MakeApiCall>b__1() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabHTTP.cs:230)
    PlayFab.Internal.PlayFabUnityHttp:OnResponse(String, CallRequestContainer) (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:238)
    PlayFab.Internal.<Post>d__19:MoveNext() (at C:\dev\pie\app\Assets\PlayFabSdk\Shared\Internal\PlayFabHttp\PlayFabUnityHttp.cs:180)
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: C
2019-04-30 15:23:13.386 7 224-7242/com.gamehouse.originalstories I/Unity: Using configuration builder objects
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(Object)
    UnityEngine.Purchasing.StoreCatalogImpl:handleCachedCatalog(Action`1)
    UnityEngine.Purchasing.<>c__DisplayClass10_0:<FetchProducts>b__1(String)
    UnityEngine.Purchasing.<Process>d__4:MoveNext()
    UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    
    (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
2019-04-30 15:23:13.432 7224-7242/com.gamehouse.originalstories I/UnityIAP: Starting in-app billing setup.
2019-04-30 15:23:13.435 7224-7224/com.gamehouse.originalstories I/UnityIAP: Billing service connected.
2019-04-30 15:23:13.435 7224-7428/com.gamehouse.originalstories I/UnityIAP: invoking callback
2019-04-30 15:23:13.436 7224-7428/com.gamehouse.originalstories I/UnityIAP: Checking for in-app billing 3 support.
2019-04-30 15:23:13.440 7224-7428/com.gamehouse.originalstories I/UnityIAP: In-app billing version 3 supported for com.gamehouse.originalstories
2019-04-30 15:23:13.447 7224-7428/com.gamehouse.originalstories I/UnityIAP: Subscriptions AVAILABLE.
2019-04-30 15:23:13.449 7224-7428/com.gamehouse.originalstories I/UnityIAP: Subscription upgrade and downgrade are AVAILABLE.
2019-04-30 15:23:13.452 7224-7428/com.gamehouse.originalstories I/UnityIAP: Subscriptions information parse AVAILABLE.
2019-04-30 15:23:13.465 7224-7428/com.gamehouse.originalstories I/UnityIAP: VR supported.
2019-04-30 15:23:13.467 7224-7428/com.gamehouse.originalstories I/UnityIAP: onIabSetupFinished: 0
2019-04-30 15:23:13.468 7224-7428/com.gamehouse.originalstories I/UnityIAP: Requesting 8 products
2019-04-30 15:23:13.468 7224-7428/com.gamehouse.originalstories I/UnityIAP: QueryInventory: 8
2019-04-30 15:23:13.468 7224-7428/com.gamehouse.originalstories I/UnityIAP: invoking callback
2019-04-30 15:23:13.468 7224-7428/com.gamehouse.originalstories I/UnityIAP: Querying owned items, item type: inapp
2019-04-30 15:23:13.468 7224-7428/com.gamehouse.originalstories I/UnityIAP: Package name: com.gamehouse.originalstories
2019-04-30 15:23:13.469 7224-7428/com.gamehouse.originalstories I/UnityIAP: Calling getPurchases with continuation token: null
2019-04-30 15:23:13.470 7224-7428/com.gamehouse.originalstories I/UnityIAP: Owned items response: 0
2019-04-30 15:23:13.471 7224-7428/com.gamehouse.originalstories I/UnityIAP: Continuation token: null
2019-04-30 15:23:13.471 7224-7428/com.gamehouse.originalstories I/UnityIAP: Querying SKU details.
2019-04-30 15:23:13.497 7224-7428/com.gamehouse.originalstories I/UnityIAP: Querying owned items, item type: subs
2019-04-30 15:23:13.497 7224-7428/com.gamehouse.originalstories I/UnityIAP: Package name: com.gamehouse.originalstories
2019-04-30 15:23:13.497 7224-7428/com.gamehouse.originalstories I/UnityIAP: Calling getPurchases with continuation token: null
2019-04-30 15:23:13.683 7224-7428/com.gamehouse.originalstories I/UnityIAP: Owned items response: 0
2019-04-30 15:23:13.683 7224-7428/com.gamehouse.originalstories I/UnityIAP: Continuation token: null
2019-04-30 15:23:13.683 7224-7428/com.gamehouse.originalstories I/UnityIAP: Querying SKU details.
2019-04-30 15:23:13.704 7224-7428/com.gamehouse.originalstories I/UnityIAP: Querying owned items' purchase history, item type: subs
2019-04-30 15:23:13.704 7224-7428/com.gamehouse.originalstories I/UnityIAP: Package name: com.gamehouse.originalstories
2019-04-30 15:23:13.704 7224-7428/com.gamehouse.originalstories I/UnityIAP: Calling getPurchaseHistory with continuation token: null
2019-04-30 15:23:13.892 7224-7428/com.gamehouse.originalstories I/UnityIAP: Purchase history response: 0
2019-04-30 15:23:13.892 7224-7428/com.gamehouse.originalstories I/UnityIAP: Continuation token: null
2019-04-30 15:23:13.892 7224-7428/com.gamehouse.originalstories I/UnityIAP: Querying owned items' purchase history, item type: inapp
2019-04-30 15:23:13.892 7224-7428/com.gamehouse.originalstories I/UnityIAP: Package name: com.gamehouse.originalstories
2019-04-30 15:23:13.892 7224-7428/com.gamehouse.originalstories I/UnityIAP: Calling getPurchaseHistory with continuation token: null
2019-04-30 15:23:13.992 7224-7428/com.gamehouse.originalstories I/UnityIAP: Purchase history response: 0
2019-04-30 15:23:13.992 7224-7428/com.gamehouse.originalstories I/UnityIAP: Continuation token: null
2019-04-30 15:23:13.993 7224-7428/com.gamehouse.originalstories I/UnityIAP: onQueryInventoryFinished: true
2019-04-30 15:23:13.993 7224-7428/com.gamehouse.originalstories I/UnityIAP: Inventory refresh successful. (response: 0:OK)
2019-04-30 15:23:14.027 7224-7428/com.gamehouse.originalstories I/UnityIAP: invoking callback
2019-04-30 15:23:14.088 7224-7242/com.gamehouse.originalstories I/Unity: Purchases initialized.
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(LogType, Object, Object)
    UnityEngine.Debug:Log(Object, Object)
    pie.Control.PurchasesManager:OnInitialized(IStoreController, IExtensionProvider) (at C:\dev\pie\app\Assets\pie\Control\PurchasesManager.cs:91)
    UnityEngine.Purchasing.StoreListenerProxy:OnInitialized(IStoreController)
    UnityEngine.Purchasing.PurchasingManager:CheckForInitialization()
    UnityEngine.Purchasing.PurchasingManager:OnProductsRetrieved(List`1)
    UnityEngine.Purchasing.JSONStore:OnProductsRetrieved(String)
    UnityEngine.Purchasing.<>c__DisplayClass4_0:<OnProductsRetrieved>b__0()
    UnityEngine.Purchasing.Extension.UnityUtil:Update()
    
    (Filename: C Line: 0)
2019-04-30 15:23:14.108 7224-7242/com.gamehouse.originalstories I/Unity: UnityIAP: Promo interface is available for 8 items
    UnityEngine.DebugLogHandler:Internal_Log()
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(Object)
    UnityEngine.Purchasing.Promo:ProvideProductsToAds(HashSet`1)
    UnityEngine.Purchasing.Promo:ProvideProductsToAds(JSONStore, IStoreCallback)
    UnityEngine.Purchasing.JSONStore:OnProductsRetrieved(String)
    UnityEngine.Purchasing.<>c__DisplayClass4_0:<OnProductsRetrieved>b__0()
    UnityEngine.Purchasing.Extension.UnityUtil:Update()
    
    (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)

We’re running Unity 2018.3.6f1

Any updates on this? We ran into the same issue as well.

No updates yet. Does it occur apparently random for you? Or do you have a consistent way to reproduce?

Oh yeah its pretty consistent. The repro steps are below

  • Start a purchase
  • Right after you put in your password/use fingerprint to accept purchase, immediately turn wifi off
  • Wait a few moments and google play should throw an error dialog
  • Turn WiFi on and in game click “Retry” on the “No Network Dialog”(this basically resets the lobby in our game and reinitializes UnityIAP in the process too)
  • Once back in the game, make the same purchase for the SKU that failed
  • An error dialog from Google Play will show saying that you already own the item

We do get an error message back as “Reason=DuplicateTransaction” though. This was after upgrading to UnityIAP 1.22, before that it gave Unknown.

1 Like

Hi, any solution to this? We are experiencing the same thing.

What version of Unity IAP? Please test with IAP 3.0.2. Are you testing only, or actually tracking user complaints? Typically users would not be explicitly turn off WiFi during a purchase, or suddenly seeing connections errors. You might be chasing a problem that doesn’t actually exist in the marketplace. Possible, yes.

Sorry I checked this post quickly, we are experiencing something similar, but it is completely different problem, not connected to IAP. Forget I asked something :slight_smile: