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ódigos de error comunes
En la próxima tabla, se enumeran los errores que puede mostrar la API en cualquier plataforma y los pasos siguientes sugeridos.
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 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 usa para versiones anteriores de Play Store que no son compatibles. | 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. | Vuelve a intentarlo con una retirada exponencial. |
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. | 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 Cloud proporcionado no es válido. | Usa el número de tu proyecto de Cloud en el que está habilitada 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 a fin de 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 3 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 una parte maliciosa.