> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/push-provisioning/integrate-the-d1-sdk/troubleshooting/push-provisioning-troubleshooting/android.md).

# Android

### Incorrect mode

**Cause:** This error occurs due to an incorrect mode on the phone.

**Fix:** You have to switch the phone from `SANDBOX` mode to `PROD` mode to resolve this error.

Refer to [Configure Sandbox](broken://spaces/62lLFDcmLCeqqwmy4Fee/pages/de7uXf08xWa3iioQdwoT) Testing for more information.

**Example error:**

```
Internal Error: CheckEligibility error in CardNetworkTokenService vendor layer: code: 14
```

### Invalid field length: cardHolderName

This error occurs on the Mastercard payment network when the length of `cardHolderName` exceeds the maximum length allowed.

The maximum length of `cardHolderName` is set at 27 characters according to Mastercard policy.

Refer to the [Mastercard documentation](https://developer.mastercard.com/mdes-pre-digitization/documentation/use_case/issuer-tokenization/#reference-api-implementation) for more details.

**Example error:**

{% code overflow="wrap" %}

```
Invalid Field Length - cardholderName"Internal Error: CheckEligibility error in CardNetworkTokenService vendor layer: code: 3
```

{% endcode %}

### Incorrect credentials of API key

This error indicates that the project is not configured on the payment network.

You have to configure the project to be on the payment network.

**Example error:**

```
card_network_token_error_code: "AUTHENTICATION_ERROR"
```

### Google Pay unavailable

This error occurs if one of these conditions is met:

* The issuer application is running on the emulator.
* The device does not have Google Play services installed. The Google Play services can be [downloaded from the store](https://play.google.com/store/apps/details?id=com.google.android.gms\&hl=en\&gl=US).
* The issuer application failed to obtain [access to Google's Push Provisioning API](broken://spaces/62lLFDcmLCeqqwmy4Fee/pages/de7uXf08xWa3iioQdwoT#request-issuer-application-access-to-push-provisioning-api). Please cross-check the package name and fingerprint of the test issuer application with the values that have been submitted to Google in the [Push Provisioning API Access Request form.](https://support.google.com/faqs/contact/pp_api_allowlist) If all data seem to match then escalate the issue to Google via <pushprov-api-support@google.com>.
* The Sandbox Environment does not have guaranteed service and can temporarily go out for a few days, but usually it doesn't take that long to come back. We suggest waiting a few days and trying the Sandbox Environment intermittently throughout the day to see if the service returns. If the issue persists or happen on PreProd or Production, contact <pushprov-api-support@google.com>

### Compile error due to duplicate entry of R.txt

This happens when the issuer application has the `android.enableJetifier=true` property set in `gradle.properties`.

To fix this, the issuer application may either turn off the Jetifier tool or ignore D1 SDK from being transformed by Jetifier as follows:

```
android.jetifier.blacklist=d1-release.aar
```

**Example error:**

{% code overflow="wrap" %}

```
> Failed to transform d1-release.aar to match attributes {artifactType=android-res}.
> Execution failed for JetifyTransform: d1-release.aar.
> Failed to transform 'd1-release.aar' using Jetifier. Reason: duplicate entry: R.txt. (Run with --stacktrace for more details.)
```

{% endcode %}

### Push provisioning launching new app

In some rare cases the push provisioning flow can be opened as an external application, when it happens it is not possible to get the Google Pay wallet result back to the launched issuer application.

<div align="left"><figure><img src="broken://spaces/62lLFDcmLCeqqwmy4Fee/files/XdraJGv7VVW7gBinnLEw" alt=""><figcaption><p>Example: push provisioning flow opens in an external application</p></figcaption></figure></div>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.payments.thalescloud.io/push-provisioning/integrate-the-d1-sdk/troubleshooting/push-provisioning-troubleshooting/android.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
