IPQS
Common Exceptions
About Exceptions

The error messages detailed below are intended to help you avoid potential pitfalls before deployment so you can receive the best fraud scores possible.

There are many "IPQualityScore.UnitySDK..." exceptions and log messages thrown throughout the UnitySDK. Most are innocuous and are simply there for IPQualityScore personnel to monitor the effectiveness of the SDK and tweak future versions.

If the API call is a success, then all error and info logs were sent to IPQS. Unless explicitly stated, these messages do not indicate a security threat or sup-par fraud score.

Main Thread Error
Issue Description
Message Received: "This method cannot be run asynchronously. Please move it to the main thread."
Problem: This indicates the GetScore() method has be run in an asynchronous thread.
Solution: In your project, ensure that GetScore() is always called from the main thread.
API Key Missing
Issue Description
Message Received: "Invalid or nonexistent app key"
Problem: This indicates the API key is either invalid or has not been set.
Solution: Set the API key. See Parameters for more details.
Code Stripping & IL2CPP Errors
Issue Description
Message Received: "A necessary type is probably not accessible"
Problem: Unity's Managed Code Stripping Engine has not added one a necessary method or parameter to the build.
Possible Solutions:
  1. Clean and rebuild the project.
  2. Under Project Settings > Player > Other Settings, Lower the "Managed Stripping Lever" or disable "Strip Engine Code".
  3. Check Unity's Managed Code Stripping documentation for ways to not omit the necessary code.

 

Issue Description
Message Received: Unsupported internal call for IL2CPP:**SomeMethod or Assembly** - "This icall is not supported by il2cpp."
Problem: Either the Managed Code Stripping Engine has removed a necessary method, or IL2CPP does not include a C# method IPQualityScore uses to fingerprint a device.
Possible Solutions:
  1. Under Project Settings > Player > Other Settings, change "Scripting Backend" to Mono.
  2. Check Unity's Managed Code Stripping documentation for ways to not omit the necessary code.
  3. If there are less than 3 of these messages, you can ignore them. The device fingerprint will still have enough data to provide an accurate fraud score, and they won't upset the end user's experience.
Permission
Issue Description
Message Received: "*Permission Type* permission has either not been requested yet, or has not been granted by user."
Problem: Before GetScore() was called, either the end user was not queried or did not grant the given permission. See Customizing the Fingerprint for a more detailed explanation.
Possible Solutions:
  1. If you do want to gather location data, prompt the user for device location before calling GetScore().
  2. If you do not want to gather location data, as part of your fingerprint customization, change the "Find User Location" to false.
iOS: Info.plist
Issue Description
Message Received: "Missing Info.plist values..."
Problem: On the iOS build, the necessary Info.plist values are either missing or improperly added.
Solutions: Fix the Info.plist values. See Testing and Building in XCode for a more detailed explanation.

Ready to eliminate fraud?

Start fighting fraud now with 5,000 Free Lookups!

We're happy to answer any questions or concerns.

Chat with our fraud detection experts any day of the week.

Call us at: (800) 713-2618