---
title: Troubleshooting on Android
description: How errors are reported by the pingonemfa module on Android, the PingOneMFAException object, and fixes for common problems.
component: orchsdks
page_id: orchsdks:davinci:use-cases/pingone-mfa/android/07-error-handling-and-troubleshooting
canonical_url: https://developer.pingidentity.com/orchsdks/davinci/use-cases/pingone-mfa/android/07-error-handling-and-troubleshooting.html
llms_txt: https://developer.pingidentity.com/orchsdks/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
keywords: ["DaVinci", "MFA", "PingOne", "Android", "Errors", "Troubleshooting", "SDK"]
section_ids:
  error-handling: Handling errors
  troubleshooting: Troubleshooting
---

# Troubleshooting on Android

[icon: circle-check, set=far]PingOne [icon: android, set=fab]Android

## Handling errors

The **pingonemfa** module converts errors from the native PingOne MFA SDK into `PingOneMFAException`, so your app never works with the native SDK's error classes directly.

The module's suspend functions never throw. They return `Result.failure` with a `PingOneMFAException`:

Handling a PingOneMFAException

```kotlin
PingOneMFA.pair(pairingKey)
    .onSuccess {
        // success path
    }
    .onFailure { e ->
        // Use message for display or simple logging
        Log.e("MFA", e.message)

        // internalErrorsList holds structured details for developer logging
        (e as? PingOneMFAException)?.internalErrorsList?.forEach { error ->
            Log.e("MFA", "code=${error.code} userInfo=${error.userInfo}")
        }
    }
```

Use the `message` property for display or simple logging. Use `internalErrorsList` for developer diagnostics only; it contains one entry per underlying native SDK error, each with the numeric error code, a message, and any additional server-provided diagnostic data. The entries in `internalErrorsList` are not suitable for showing to users.

The error codes match those listed in the [PingOne MFA SDK for Android error codes](https://pingidentity.github.io/pingone-mobile-sdk-android/-ping-one%20-m-f-a%20-android%20-s-d-k/com.pingidentity.pingidsdkv2.error/-ping-one-s-d-k-error-type/index.html).

## Troubleshooting

* Push notifications not received

  * Verify that the FCM push token was registered with `setDeviceToken`.

  * Confirm that `google-services.json` is present and matches your application ID.

  * Check that FCM is configured in your PingOne environment.

* One-time passcode request fails with a device-not-paired error

  Ensure that `pair` was called and succeeded before requesting a passcode.

* Initialization or pairing fails unexpectedly

  * Check network connectivity to the PingOne MFA service.

  * Confirm that the geography passed to `initialize` matches the region of your PingOne environment.
