# MD for: https://www.mercadopago.com.br/developers/es/docs/checkout-api-orders/payment-management/integration-errors/sdk.md \# Possible mobile SDK errors Check the list of possible errors returned by the Mercado Pago SDK for mobile integrations and how to fix them. ::::TabsComponent :::TabComponent{title="Android"} When the flow fails, the SDK delivers an error (\`MercadoPagoCheckoutResult.Error\`) with the fields \`errorCode\` (a stable value from the \`ErrorCode\` enum), \`errorMessage\` (error description), and \`errorLocalized\` (the step in the flow where it occurred). \`\`\`kotlin sealed class MercadoPagoCheckoutError( val errorCode: ErrorCode, val errorMessage: String, val errorLocalized: String, val errorCause: String? = null, ) : Throwable(message = errorMessage) \`\`\` | Code | Description | Cause | Possible solution | |---|---|---|---| | \`NETWORK\_CONNECTION\_FAILED\` | The mobile device could not open a network connection. | No internet, airplane mode, unreachable network, or DNS failure. | Check connectivity and offer a retry to the user. | | \`NETWORK\_TIMEOUT\` | The request exceeded the time limit. | Slow server or poor network quality. | Treat as recoverable and offer a retry to the user. | | \`SERVICE\_ERROR\` | Server error or failure communicating with the API. | Invalid API parameters, processing failure, or service business rule. | Check \`errorMessage\` and \`errorLocalized\` to identify the step. Confirm the data sent (\`MPOrder\`, \`orderId\`, amount, etc.) and the backend logs. | | \`INTEGRATION\_ERROR\` | The SDK is misconfigured or used incorrectly. | Missing required configuration, invalid initialization, or incorrect API usage (missing required parameters). | Ensure that \`MercadoPagoSDK.initialize(...)\` is called at app startup and before the checkout, with a valid :toolTipComponent\[Public Key\]{content="Public key used in the frontend to access information and encrypt data, whether in the development or testing stage. You can access it through \*Your integrations\* in the \*Integration data\* section, going to the \*Credentials\* section located on the right side of the screen and clicking \*Test\*. Alternatively, you can go through \*Your integrations > Application data > Tests > Test credentials\*."} (\`publicKey\`) and the corresponding country (\`countryCode\`). | | \`UNKNOWN\` | Error that does not fit any other category. | Unexpected exception or undetermined error type. | Log \`errorMessage\` and \`errorLocalized\` for diagnosis and display a generic failure message with a retry option to the user. | ::: :::TabComponent{title="iOS"} When the flow fails, the SDK delivers a \`MercadoPagoCheckoutResult.Error\` with the fields \`code\` (a stable value from the \`Code\` enum), \`errorDescription\` (error description), and \`locationDescription\` (the step in the flow where it occurred). See the list of possible errors returned and how to fix them. \`\`\`swift @frozen public struct MercadoPagoCheckoutError: Error { public let code: Code public var errorDescription: String? public var locationDescription: String } \`\`\` | Code | Description | Cause | Possible solution | |---|---|---|---| | \`networkConnectionFailed\` | The mobile device could not open a network connection. | No internet, airplane mode, unreachable network, or DNS failure. | Check connectivity and offer a retry to the user. | | \`networkTimeout\` | The request exceeded the time limit. | Slow server or poor network quality. | Treat as recoverable and offer a retry to the user. | | \`serviceError\` | Server error or failure communicating with the API. | Invalid API parameters, processing failure, or service business rule. | Check \`errorDescription\` and \`locationDescription\` to identify the step. Confirm the data sent in \`MPOrder\` and the backend logs. | | \`integrationError\` | The SDK is misconfigured or used incorrectly. | Missing required configuration, invalid initialization, or incorrect API usage (missing required parameters). | Ensure that \`MercadoPagoSDK.shared.initialize(...)\` is called at app startup and before the checkout, with a valid :toolTipComponent\[Public Key\]{content="Public key used in the frontend to access information and encrypt data, whether in the development or testing stage. You can access it through \*Your integrations\* in the \*Integration data\* section, going to the \*Credentials\* section located on the right side of the screen and clicking \*Test\*. Alternatively, you can go through \*Your integrations > Application data > Tests > Test credentials\*."} (\`publicKey\`) and the corresponding country (\`country\`). | | \`unknown\` | Error that does not fit any other category. | Unexpected exception or undetermined error type. | Log \`errorDescription\` and \`locationDescription\` for diagnosis and display a generic failure message with a retry option to the user. | ::: ::::