Orchestration SDKs

Troubleshooting on Android

PingOne 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
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.

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.