Skip to main content

Android Error Codes and FAQ

SDK Version: 1.0.0
Platform: Android

The SDK returns enum names, exceptions, or reason strings. This document does not define unpublished numeric error codes.

Auth reason

reasonMeaningRecommended action
okAuthentication and DID retrieval succeededContinue to Init
not_connectedWaiting for BLE connection failedCheck state and reconnect
ble_not_readyGATT/AT path is not readyWait; reconnect after timeout
at_path_unavailableNeither plain nor XOR probe produced valid evidenceCheck the device, firmware, and link
challenge_command_failedChallenge command failedRemove concurrent AT work and retry auth
challenge_verify_failedChallenge signature verification failedDo not continue; reconnect and retry
did_read_failedNo valid DID from AT+EFUSESN?/AT+SN?Check firmware and device identity data

Init reason

reasonMeaningRecommended action
okConfiguration was appliedContinue
no_vendor_configThis host needs no vendor configurationContinue normally
missing_didNo authenticated DIDReturn to Auth
command_no_okAT response contained no OKPreserve a response summary and retry if connected
command_failedAT transport threw or failed to sendReconnect, then run Auth → Init

FAQ

No device appears during scanning

Confirm that Bluetooth is enabled, runtime permissions are granted, the device is advertising, and XTALK_SCAN_UUID_5632G is used. Android 11 and earlier also require location permission and the system location switch.

CONNECT_OK is returned but sending still fails

CONNECT_OK is not business readiness. Wait for GATT readiness, complete Auth and Init, then check XTalkBleClient.isReadyForSend().

An AT command times out

Do not call it on the main thread and do not overlap it with Auth, Init, OTA, or other AT work. Confirm that awaitBleReady() succeeded. Send the exception type and response summary to support.

Authentication intermittently fails after reconnect

Cancel old business tasks and listeners, disconnect, wait for DISCONNECTED, and reconnect. After a device restart or OTA, use forceReauth = true.

The Release app installs but crashes at startup

Verify every AAR/dependency in the delivery manifest and ensure customer R8 rules do not remove SDK types. Provide the complete stack trace, not only an “initialization failed” description.

How should resources be released?

Stop scanning, cancel business coroutines, remove every listener, and call disconnect(). Do not register duplicate listeners from multiple screens without removing them.

Back to the overview