En esta página, se mencionan algunos códigos de error comunes, lo que representan y cómo tu app o juego pueden responder a ellos.
Código de error | Descripción | Acción |
---|---|---|
API_NOT_AVAILABLE |
La API de Integrity no está disponible. La API de Integrity no está habilitada, o bien la versión de Play Store es muy antigua. | 1) Asegúrate de que la API de Play Integrity esté habilitada en Google Play Console. 2) Pídele al usuario que actualice Google Play Store. |
NETWORK_ERROR |
No se encontró ninguna red disponible. | Pídele al usuario que compruebe la conectividad de red. |
PLAY_STORE_NOT_FOUND |
No se encontró ninguna app oficial de Play Store en el dispositivo. | Pídele al usuario que instale o habilite Google Play Store. |
PLAY_STORE_VERSION_OUTDATED |
La app de Play Store debe actualizarse. | Pídele al usuario que actualice Google Play Store. |
PLAY_STORE_ACCOUNT_NOT_FOUND |
No se encontró ninguna cuenta de Play Store en el dispositivo. Ten en cuenta que la API de Play Integrity ahora admite solicitudes que no se hayan autenticado. Este código de error solo se utiliza para las versiones anteriores de Play Store que carecen de compatibilidad. | Pídele al usuario que acceda a Google Play Store. |
CANNOT_BIND_TO_SERVICE |
No se pudo realizar la vinculación al servicio de Play Store. Esto puede deberse a que el dispositivo tiene instalada una versión anterior de Play Store. | Pídele al usuario que actualice Google Play Store. |
APP_NOT_INSTALLED |
No se instaló la app que realiza la llamada. | Ocurrió un problema; es posible que se trate de un ataque. No se pueden realizar acciones. |
PLAY_SERVICES_NOT_FOUND |
Los Servicios de Play no están disponibles o deben actualizarse. | Pídele al usuario que instale o actualice los Servicios de Play. |
PLAY_SERVICES_VERSION_OUTDATED |
Los Servicios de Play deben actualizarse. | Pídele al usuario que actualice los servicios de Google Play. |
TOO_MANY_REQUESTS |
La app que realiza la llamada envía demasiadas solicitudes a la API y se limitaron. |
|
REQUEST_HASH_TOO_LONG |
El requestHash proporcionado es demasiado largo. El requestHash debe tener menos de 500 caracteres de longitud. |
Vuelve a intentarlo con un requestHash más corto. |
GOOGLE_SERVER_UNAVAILABLE |
Error interno del servidor de Google desconocido. | Vuelve a intentarlo con una retirada exponencial. |
CLIENT_TRANSIENT_ERROR |
Se produjo un error transitorio en el dispositivo del cliente. Compatible a partir de la versión 1.1.0 de la biblioteca para los lenguajes de programación Kotlin y Java, el complemento de Google Play Integrity para Unity 1.1.0 o versiones posteriores y el SDK nativo de Play Core 1.12.1 o versiones posteriores. | Vuelve a intentarlo con una retirada exponencial. |
INTERNAL_ERROR |
Error interno desconocido. | Vuelve a intentarlo con una retirada exponencial. |
NONCE_TOO_SHORT |
La longitud del nonce es demasiado corta. El nonce debe tener un mínimo de 16 bytes (antes de la codificación en Base64). | Vuelve a intentarlo con un nonce más largo. |
NONCE_TOO_LONG |
La longitud del nonce es demasiado larga. El nonce debe tener un máximo de 500 bytes (antes de la codificación en Base64). | Vuelve a intentarlo con un nonce más corto. |
NONCE_IS_NOT_BASE64 |
El nonce no tiene un formato compatible con el atributo no-wrap, seguro para la Web ni está codificado en Base64. | Vuelve a intentarlo con el formato correcto de nonce. |
CLOUD_PROJECT_NUMBER_IS_INVALID |
El número de proyecto de la nube proporcionado no es válido. | Usa el número del proyecto de la nube para el que habilitaste la API de Play Integrity. |
APP_UID_MISMATCH |
El UID (ID de usuario) de la app que realiza la llamada no coincide con el del Administrador de paquetes. | Ocurrió un problema; es posible que se trate de un ataque. No se pueden realizar acciones. |
Códigos de error específicos nativos
El prefijo INTEGRITY_
se antepone a los códigos de error nativos para evitar posibles conflictos de nombre. Además de los códigos de error mencionados con anterioridad, la API nativa también incluye los siguientes:
Código de error | Descripción | Acción |
---|---|---|
INTEGRITY_INITIALIZATION_NEEDED |
No se inicializó IntegrityManager. | Primero, invoca a IntegrityManager_init(). |
INTEGRITY_INITIALIZATION_FAILED |
Se produjo un error durante la inicialización de la API de Integrity. | Vuelve a intentarlo con una retirada exponencial. Considera informar un error. |
INTEGRITY_INVALID_ARGUMENT |
Se pasó un argumento no válido a la API de Integrity. | Vuelve a intentarlo con el argumento correcto. |
Lógica de reintento en caso de error
Una app debería reintentar las llamadas a la API en caso de que se muestren ciertos códigos de error. Revisa todos los códigos de error y verifica que la aplicación vuelva a intentarlo cuando sea necesario con una retirada exponencial. Esta es la estrategia de reintento recomendada:
- Después de la primera falla, comienza con un retraso inicial de 5 segundos antes de reintentarlo.
- Vuelve a intentarlo un total de tres veces y aumenta el retraso de forma exponencial cada vez (10 s y 20 s).
Mientras realizas estos reintentos, verifica si hay una conexión de red y no sobrecargues el dispositivo.
Si sigues viendo errores después de tres intentos, trata el resultado como si el cliente no aprobara todas las verificaciones de integridad. El error puede deberse a varios motivos, incluidos, entre otros, la sobrecarga del dispositivo, problemas de conexión de red o la intervención de un atacante.