StackOverflowException: The requested operation caused a stack overflow. When an IAP fails.

Hi!
I’m trying to set up an IAP system in my game, and when you click cancel, or click away from the IAP on the Android app, it crashes the game.
I tested it in the editor and it spat this out:

StackOverflowException: The requested operation caused a stack overflow.
UnityEngine.Object.op_Inequality (UnityEngine.Object x, UnityEngine.Object y) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.BaseInvokableCall.AllowInvoke (System.Delegate delegate) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)
UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <ab7de6937a4448b0a6ccd59e9820599a>:0)
UnityEngine.Purchasi<message truncated>

I have no clue why this is happening, and I am still quite a beginner to Unity Development, so I may be being a complete idiot here.

Same problem here, did you find out what it was?

Without going into technical details, StackOverflowException basically means infinite loop.

And you can notice that your log message is this call, repeating until CPU had enough:

UnityEngine.Purchasing.IAPButton.OnPurchaseFailed (UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason reason) (at Library/PackageCache/com.unity.purchasing@4.1.4/Runtime/Codeless/IAPButton.cs:210)