Se um aplicativo fizer uma solicitação usando a API Play Integrity e a chamada falhar, um código do erro será retornado. O tipo de código do erro retornado depende do tipo de solicitação:
- Solicitações padrão: a API retorna um StandardIntegrityErrorCode.
- Solicitações clássicas: a API retorna um IntegrityErrorCode.
Estratégias de nova tentativa
Recomendamos o uso de espera exponencial para operações da API Play Integrity que aconteçam em segundo plano e não afetem a experiência do usuário durante a sessão.
Por exemplo, seria apropriado implementar isso ao confirmar novas compras, porque essa operação pode acontecer em segundo plano e a confirmação não precisa acontecer em tempo real se ocorrer um erro.
Após a primeira falha, comece com um atraso inicial de cinco segundos antes de tentar de novo.
Implemente uma estratégia com um número máximo de tentativas como uma condição de saída. Use um atraso exponencialmente aumentado a cada vez (10 s, 20 s).
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.
Valores de códigos de erros para a biblioteca Java
Outros valores de códigos de erros para a biblioteca nativa
Códigos de erros que aceitam novas tentativas
Às vezes, a causa desses erros é devido a condições temporárias. Portanto, você precisa repetir a chamada.
NETWORK_ERROR
(Código do erro: -3)
Esse erro indica que houve um problema com a conexão de rede entre o dispositivo e os sistemas do Google Play.
Possível solução
Para recuperar, peça ao usuário para verificar a conectividade de rede e use tentativas simples ou com espera exponencial, dependendo de qual ação gerou o erro.
Confira também
NETWORK_ERROR
para solicitações clássicas.
TOO_MANY_REQUESTS
(Código do erro: -8)
O app de chamada está fazendo muitas solicitações à API e foi limitado.
Possível solução
- Peça para aumentar seu limite diário de solicitações
- Tente de novo com uma espera exponencial.
Confira também
TOO_MANY_REQUESTS
para solicitações clássicas.
GOOGLE_SERVER_UNAVAILABLE
(Código do erro: -12)
Erro desconhecido do servidor interno do Google.
Possível solução
Tente de novo com uma espera exponencial. Registre um bug em caso de falhas frequentes.
Confira também
GOOGLE_SERVER_UNAVAILABLE
para solicitações clássicas.
CLIENT_TRANSIENT_ERROR
(Código do erro: -18)
Ocorreu um erro temporário no dispositivo cliente.
Para solicitações de API padrão, esse recurso tem suporte a partir da versão 1.3.0 da biblioteca da API Play Integrity para Kotlin e Java, do Plug-in do Google Play Integrity para Unity 1.3.0 ou mais recente e do SDK nativo da Play Core 1.13.0 ou mais recente.
Possível solução
Tente de novo com uma espera exponencial.
Confira também
CLIENT_TRANSIENT_ERROR
para solicitações clássicas.
Observação: quando informado ao usar uma solicitação da API clássica, o valor retornado é -17.
INTERNAL_ERROR
(Código do erro: -100)
Erro interno desconhecido.
Possível solução
Tente de novo com uma espera exponencial. Registre um bug em caso de falhas frequentes.
Confira também
INTERNAL_ERROR
para solicitações clássicas.
STANDARD_INTEGRITY_INTERNAL_ERROR
(Código do erro: -100)
Erro interno desconhecido.
Possível solução
Tente de novo com uma espera exponencial. Registre um bug em caso de falhas frequentes.
Confira também
Consulte INTEGRITY_INTERNAL_ERROR
para solicitações clássicas.
STANDARD_INTEGRITY_INITIALIZATION_FAILED
(Código do erro: -102)
Ocorreu um erro ao inicializar a API Integrity padrão.
Possível solução
Tente de novo com uma espera exponencial. Registre um bug em caso de falhas frequentes.
Confira também
Consulte INTEGRITY_INITIALIZATION_FAILED
para solicitações clássicas.
Códigos de erro que não aceitam novas tentativas
É improvável que novas tentativas automáticas ajudem nesses casos. No entanto, uma nova tentativa manual pode ajudar se o usuário resolver a condição que causou o problema. Por exemplo, se o usuário atualizar a Play Store para uma versão com suporte, uma nova tentativa manual da operação inicial poderá funcionar.
API_NOT_AVAILABLE
(Código do erro: -1)
A versão da Play Store instalada no dispositivo pode ser antiga e a API Integrity pode não estar disponível. Outra possibilidade é que a API Integrity não esteja ativada no Google Play Console.
Possível solução
- Ative a API Integrity no Google Play Console.
- Peça ao usuário para atualizar a Play Store.
Confira também
Consulte API_NOT_AVAILABLE
para acessar a solicitação clássica.
PLAY_STORE_NOT_FOUND
(Código do erro: -2)
O app oficial da Google Play Store não foi encontrado no dispositivo.
Possível solução
Peça ao usuário para instalar ou ativar a Google Play Store.
Confira também
Consulte PLAY_STORE_NOT_FOUND
para acessar a solicitação clássica.
PLAY_STORE_ACCOUNT_NOT_FOUND
(Código do erro: -4)
Observação: isso só é informado para solicitações clássicas usando
IntegrityErrorCode
.
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 do erro é usado somente em versões mais antigas da Play Store que não têm suporte.
Possível solução
Peça ao usuário para atualizar e fazer login na Google Play Store.
APP_NOT_INSTALLED
(Código do erro: -5)
O app de chamada não está instalado. Há algo de errado, possivelmente um ataque.
Possível solução
Não há soluções possíveis. Trate o resultado como se o cliente tivesse falhado em todas as verificações de integridade.
Confira também
Consulte APP_NOT_INSTALLED
para acessar a solicitação clássica.
PLAY_SERVICES_NOT_FOUND
(Código do erro: -6)
O Google Play Services está indisponível ou precisa ser atualizado.
Possível solução
Peça ao usuário para instalar, atualizar ou ativar o Google Play Services.
Confira também
Consulte APP_NOT_INSTALLED
para acessar a solicitação clássica.
APP_UID_MISMATCH
(Código do erro: -7)
O UID (ID do usuário) do app de chamada não corresponde ao do gerenciador de pacotes.
Possível solução
Não há soluções possíveis. Trate o resultado como se o cliente tivesse falhado em todas as verificações de integridade.
Confira também
Consulte APP_UID_MISMATCH
para acessar a solicitação clássica.
CANNOT_BIND_TO_SERVICE
(Código do erro: -9)
Falha ao vincular ao serviço na Play Store. Isso pode ocorrer porque uma versão antiga da Play Store está instalada no dispositivo.
Possível solução
Peça ao usuário para atualizar a Google Play Store.
Confira também
Consulte CANNOT_BIND_TO_SERVICE
para acessar a solicitação clássica.
NONCE_TOO_SHORT
(Código do erro: -10)
Observação: isso só é informado para solicitações clássicas usando
IntegrityErrorCode
.
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.
Possível solução
Tente de novo com um valor de uso único mais longo.
NONCE_TOO_LONG
(Código do erro: -11)
Observação: isso só é informado para solicitações clássicas usando
IntegrityErrorCode
.
O valor de uso único é muito longo. O valor de uso único precisa ter menos que 500 bytes antes da codificação base64.
Possível solução
Tente de novo com um valor de uso único mais curto.
NONCE_IS_NOT_BASE64
(Código do erro: -13)
Observação: isso só é informado para solicitações clássicas usando
IntegrityErrorCode
.
O valor de uso único não foi codificado como uma string base64, com segurança na Web e sem wrapper.
Possível solução
Tente de novo com um valor de uso único no formato correto.
PLAY_STORE_VERSION_OUTDATED
(Código do erro: -14)
O app Play Store precisa ser atualizado.
Possível solução
Peça ao usuário para atualizar a Google Play Store.
Confira também
Consulte PLAY_STORE_VERSION_OUTDATED
para acessar a solicitação clássica.
PLAY_SERVICES_VERSION_OUTDATED
(Código do erro: -15)
O Google Play Services precisa ser atualizado.
Possível solução
Peça ao usuário para atualizar o Google Play Services.
Confira também
Consulte PLAY_SERVICES_VERSION_OUTDATED
para acessar a solicitação clássica.
CLOUD_PROJECT_NUMBER_IS_INVALID
(Código do erro: -16)
O número fornecido de projeto na nuvem é inválido.
Possível solução
Use o número do projeto do Google Cloud em que você ativou a API Play Integrity.
Confira também
Consulte CLOUD_PROJECT_NUMBER_IS_INVALID
para acessar a solicitação clássica.
REQUEST_HASH_TOO_LONG
(Código do erro: -17)
Observação: isso só é informado para solicitação padrão usando
StandardIntegrityErrorCode
.
O requestHash
fornecido é muito longo. O requestHash
precisa ter menos
de 500 caracteres.
Possível solução
Tente de novo com um requestHash
mais curto.
INTEGRITY_TOKEN_PROVIDER_INVALID
(Código do erro: -19)
Observação: isso só é informado para solicitações padrão usando
StandardIntegrityErrorCode
.
O StandardIntegrityTokenProvider
é inválido. Esse código do erro está disponível
apenas para solicitações de API padrão, em que há suporte na versão
1.3.0 da biblioteca para as linguagens de programação Kotlin e Java, no Plug-in do Google Play Integrity
para Unity 1.3.0 ou mais recente e no SDK nativo do Play Core 1.13.0 ou mais recente.
Possível solução
Solicite um novo provedor de token de integridade.
STANDARD_INTEGRITY_INITIALIZATION_NEEDED
(Código do erro: -101)
StandardIntegrityManager
não foi inicializado.
Possível solução
Chame StandardIntegrityManager_init()
primeiro.
Confira também
Consulte INTEGRITY_INITIALIZATION_NEEDED
para solicitações clássicas
STANDARD_INTEGRITY_INVALID_ARGUMENT
(Código do erro: -103)
Um argumento inválido foi transmitido para a API Integrity padrão.
Possível solução
Tente de novo com o argumento correto.
Confira também
Consulte INTEGRITY_INVALID_ARGUMENT
para solicitações clássicas.