Qonversion SDK Errors Details
SDK API Interaction Errors
Here you can find the descriptions of errors that may be returned from SDK while interacting with the Qonversion backend. These descriptions are intended to help you troubleshoot any issues quicker.
Make sure to use a device (not a simulator) when testing iOS purchases.
iOS enum (Int value) | Android enum | Description |
---|---|---|
|
| The response has the wrong format |
|
| There was an internal backend error |
|
| An unexpected error occurred that can't be classified |
|
| The access token is invalid or not set |
|
| Client Uid is invalid or not set |
|
| The current platform is not supported |
|
| Fraud purchase was detected |
|
| The requested feature is not supported |
|
| There was an issue with the Play Store / Apple Store service. For example, the Store is unavailable or returns an incorrect response or unexpected error without details. |
|
| Failure of purchase. For example, a purchase with such |
|
| The project is not configured or configured incorrectly in Qonversion's settings dashboard. |
|
| This account does not have access to the requested application. Please check the provided Store keys. Check the details here |
| The provided receipt can't be validated. Check the details here | |
|
| There were too many parallel or subsequent requests to the Qonversion API in a while. |
iOS Errors Codes
Qonversion SDK provides error codes that help locate and eliminate possible issues. Most Qonversion errors for iOS correspond to StoreKit SKError objects. You can check the errors described in the table below in QNErrors.h
file.
Error enum value (Error Int value) | Description |
---|---|
| Unknown error occurred |
| Apple StoreKit |
| This error means that for some reason the product is not found. |
| Apple StoreKit SKErrorClientInvalid error analog. |
| Apple StoreKit SKErrorPaymentInvalid error analog. |
| Apple StoreKit SKErrorPaymentNotAllowed error analog. |
| Apple Store didn't process the request. |
| Apple StoreKit SKErrorStoreProductNotAvailable |
| Apple StoreKit SKErrorCloudServicePermissionDenied error analog. Available from iOS 9.3, TV OS 9.3, Watch OS 6.2, Mac OS 11.0 The user has not allowed access to Cloud service information. |
| Apple StoreKit SKErrorCloudServiceNetworkConnection- Available from iOS 9.3, TV OS 9.3, Watch OS 6.2, Mac OS 11.0 The device could not connect to the network. |
| Apple StoreKit SKErrorCloudServiceRevoked error analog. Available from iOS 10.3, TV OS 10.3, Watch OS 6.2, Mac OS 11.0 The user has revoked permission to use this cloud service. |
| Apple StoreKit SKErrorPrivacyAcknowledgementRequired error analog. Available from iOS 12.2, TV OS 12.2, Watch OS 6.2, Mac OS 10.14.4 The user needs to acknowledge Apple's privacy. |
| Apple StoreKit SKErrorUnauthorizedRequestData error analog. Available from iOS 12.2, Watch OS 6.2, Mac OS 10.14.4 The app is attempting to use SKPayment's requestData property but does not have the appropriate entitlement. |
| The provided shared secret is incorrect, validation is unavailable. |
| Failed to connect to Qonversion back-end. |
| Other URL Session errors of |
| Network data error. |
| Internal error occurred. |
| The payment transaction is in the queue, but its final status is pending external action. |
| Remote configuration is not available for the current user. Please ensure that the remote configuration is configured correctly in the Qonversion Dashboard. |
Android Errors Codes
You can use both physical devices and emulators to test Android in-app purchases.
Qonversion SDK provides error codes that help locate and eliminate possible issues. The table below contains the descriptions of the possible errors.
Error additional message
The field
QonversionError.additionalMessage
contains the detailed error information. If you see the following message:It is a proxy of the Google BillingClient error
, please check Google's documentation on BillingClient.
Title | Description |
---|---|
| Any error with no specific details available. These errors may include undefined Throwable errors and Google Billing Client errors. |
| There was an issue with the Play Store service. This error appears when the Google Billing client times out, disconnects or is unavailable. |
| The Billing service is unavailable on the device. Please see the details here. |
| Failure to purchase. Please ensure that you are using the Google account where purchases are allowed and the application was correctly signed and properly set up for billing. |
| The user pressed back or canceled a dialog for purchase. |
| Failure to consume purchase since the item is not owned. |
| Failure to purchase since the item is already owned. |
| The requested feature is not supported by the Play Store on the current device. |
| The requested product is not available for purchase. Please see the details here. |
| There was a network issue. Please make sure that the Internet connection is available on the device. |
| A problem occurred while serializing or deserializing data. |
| There was a backend error. Please see |
| Failure to purchase since the Qonversion product was not found. Please see the details here. |
| Offerings were not found. |
| There was an error while launching Qonversion SDK. |
| Failure to retrieve SkuDetails for the in-app product ID. Please ensure that the products are configured correctly in the Google Play Console. Please see the details here. |
| Remote configuration is not available for the current user. Please ensure that the remote configuration is configured correctly in the Qonversion Dashboard. |
Here is an example of how you can get the error details including additional error information, error code, and description:
Qonversion.getSharedInstance().products(new QonversionProductsCallback() {
@Override
public void onSuccess(@NotNull Map<String, QProduct> productsList) {
// handle available products here
}
@Override
public void onError(@NotNull QonversionError error) {
// Additional error information (if possible)
String additionalErrorMessage = error.getAdditionalMessage();
// Error enum code
QonversionErrorCode errorCode = error.getCode();
// Error enum code description
String errorDescription = error.getDescription();
// Handle the error
}
});
Qonversion.shared.products(object : QonversionProductsCallback {
override fun onSuccess(products: Map<String, QProduct>) {
// handle available products here
}
override fun onError(error: QonversionError) {
// Additional error information (if possible)
val additionalErrorMessage = error.additionalMessage
// Error enum code
val errorCode = error.code
// Error enum code description
val errorDescription = error.description
// Handle the error
}
})
Each Qonversion callback has the fun onError(error: QonversionError)
where error information is available.
Updated 4 days ago