Códigos de error

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:

  1. Después de la primera falla, comienza con un retraso inicial de 5 segundos antes de reintentarlo.
  2. 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.