Códigos de erro

Esta página lista alguns códigos de erro comuns, o que eles representam e como seu app ou jogo pode responder a eles.

Código do erro Descrição O que fazer
API_NOT_AVAILABLE A API Integrity não está disponível. Ela não está ativada ou a versão da Play Store é antiga. 1) Confira se a API Play Integrity está ativada no Google Play Console. 2) Peça ao usuário para atualizar a Google Play Store.
NETWORK_ERROR Nenhuma rede foi encontrada. Peça ao usuário para conferir a conectividade da rede.
PLAY_STORE_NOT_FOUND O app oficial da Google Play Store não foi encontrado no dispositivo. Peça ao usuário para instalar ou ativar a Google Play Store.
PLAY_STORE_VERSION_OUTDATED O app Play Store precisa ser atualizado. Peça ao usuário para atualizar a Google Play Store.
PLAY_STORE_ACCOUNT_NOT_FOUND Nenhuma conta da Play Store foi encontrada no dispositivo. A API Play Integrity agora oferece suporte a solicitações não autenticadas. Esse código de erro é usado somente em versões mais antigas da Play Store que não têm suporte. Peça para o usuário fazer login na Google Play Store.
CANNOT_BIND_TO_SERVICE Falha ao vincular ao serviço na Play Store. Isso pode ocorrer porque uma versão antiga da Play Store está instalada no dispositivo. Peça ao usuário para atualizar a Google Play Store.
APP_NOT_INSTALLED O app de chamada não está instalado. Há algo de errado, possivelmente um ataque. Não há soluções possíveis.
PLAY_SERVICES_NOT_FOUND O Google Play Services está indisponível ou precisa ser atualizado. Peça ao usuário para instalar ou atualizar o Google Play Services.
PLAY_SERVICES_VERSION_OUTDATED O Google Play Services precisa ser atualizado. Peça ao usuário para atualizar o Google Play Services.
TOO_MANY_REQUESTS O app de chamada está fazendo muitas solicitações à API e foi limitado.
  1. Peça para aumentar seu limite diário de solicitações
  2. Tente de novo com uma espera exponencial.
REQUEST_HASH_TOO_LONG O requestHash fornecido é muito longo. O requestHash precisa ter menos de 500 caracteres. Tente de novo com um requestHash mais curto.
GOOGLE_SERVER_UNAVAILABLE Erro desconhecido do servidor interno do Google. Tente de novo com uma espera exponencial.
CLIENT_TRANSIENT_ERROR Ocorreu um erro temporário no dispositivo cliente. Tem suporte na versão 1.1.0 e mais recentes da biblioteca para as linguagens de programação Kotlin e Java, na versão 1.1.0 e mais recentes do Plug-in da API Play Integrity para Unity e na versão 1.12.1 e mais recentes do SDK nativo da biblioteca Play Core. Tente de novo com uma espera exponencial.
INTERNAL_ERROR Erro interno desconhecido. Tente de novo com uma espera exponencial.
NONCE_TOO_SHORT O valor de uso único é muito curto. O valor de uso único precisa ter um mínimo de 16 bytes antes da codificação de base64. Tente de novo com um valor de uso único mais longo.
NONCE_TOO_LONG O valor de uso único é muito longo. O valor de uso único precisa ter menos que 500 bytes antes da codificação base64. Tente de novo com um valor de uso único mais curto.
NONCE_IS_NOT_BASE64 O valor de uso único não tem o formato de base64, com segurança na Web e sem wrapper. Tente novamente com o formato de uso único correto.
CLOUD_PROJECT_NUMBER_IS_INVALID O número fornecido de projeto na nuvem é inválido. Use o número do projeto do Cloud em que você ativou a API Play Integrity.
APP_UID_MISMATCH O UID (ID do usuário) do app de chamada não corresponde ao do gerenciador de pacotes. Há algo de errado, possivelmente um ataque. Não há soluções possíveis.

Códigos de erro nativos

O prefixo INTEGRITY_ é anexado aos códigos de erro nativos para evitar possíveis conflitos de nomenclatura. Além dos códigos de erro listados acima, a API nativa também inclui estes códigos de erro:

Código do erro Descrição O que fazer
INTEGRITY_INITIALIZATION_NEEDED O IntegrityManager não foi inicializado. Invoque IntegrityManager_init() primeiro.
INTEGRITY_INITIALIZATION_FAILED Ocorreu um erro ao inicializar a API Integrity. Tente de novo com uma espera exponencial. Registre um bug, se necessário.
INTEGRITY_INVALID_ARGUMENT Um argumento inválido foi transmitido para a API Integrity. Tente de novo com o argumento correto.

Repetir lógica em caso de erro

Um app precisa repetir chamadas de API no caso de determinados códigos de erro. Revise todos os códigos de erro e verifique se o aplicativo tenta de novo com espera exponencial quando necessário. Veja a estratégia recomendada:

  1. Após a primeira falha, comece com um atraso inicial de cinco segundos antes de tentar de novo.
  2. Faça um total de três tentativas, aumentando o atraso exponencialmente a cada vez (10s, 20s).

Durante essas tentativas, confira se há uma conexão de rede e não sobrecarregue o dispositivo.

Se os erros continuarem ocorrendo após três tentativas, trate o resultado como se o cliente tivesse falhado em todas as verificações de integridade. O erro pode ocorrer por vários motivos, incluindo, entre outros: um dispositivo sobrecarregado, problemas de conexão de rede ou uma tentativa de ataque.