Pular para o conteúdo principal
Há vários pontos diferentes em que uma chamada de API assíncrona do SDK do PlayFab Services pode falhar. O tratamento desses erros varia de acordo com como e quando a operação falha. Como a maioria das chamadas assíncronas no GDK, as APIs do PlayFab seguem o mesmo padrão geral de chamada:
  1. Chamada PF*Async(…), que inicia uma operação assíncrona.
  2. (Opcional) Chamada XAsyncGetStatus(…) para acompanhar o status da operação assíncrona. Pode ser usada para aguardar a conclusão da operação assíncrona.
  3. PF*GetResultSize(…) para recuperar o tamanho em bytes do payload do resultado.
  4. PF*GetResult(…) para recuperar o resultado da operação assíncrona.
Cada uma dessas chamadas pode falhar por motivos diferentes. As seções a seguir detalham os tipos de falha mais comuns.

Falhas síncronas

Uma falha síncrona ocorre quando a chamada inicial PF*Async retorna um erro. Esse tipo de falha geralmente indica um erro de programação — padrão de chamada inválido, argumentos inválidos e assim por diante. Esses tipos de erro devem ser resolvidos durante o desenvolvimento. A maioria das outras falhas síncronas é fatal e não pode ser tratada facilmente (por exemplo, E_OUTOFMEMORY).

Falhas assíncronas

Uma falha assíncrona ocorre quando XAsyncGetStatus, PF*GetResultSize ou PF*GetResult falha. O leque de falhas assíncronas é mais amplo. Além dos erros causados por argumentos inválidos, as falhas assíncronas se enquadram em várias categorias, descritas com mais detalhes nas seções a seguir.

Falhas de validação de token

Antes de iniciar uma chamada de serviço do PlayFab, o SDK faz uma validação do lado do cliente para garantir que o token de autenticação necessário esteja disponível e ainda seja válido. Se essa verificação falhar, um dos seguintes erros será retornado:
  • E_PF_NOENTITYTOKEN (0x89235411): Indica que o EntityToken associado ao PFEntityHandle fornecido expirou. Consulte Tratando a expiração de tokens para obter mais informações sobre como lidar com essa situação.
  • E_PF_NOSECRETKEY (0x89235412) Indica que o PFEntityHandle fornecido não tem uma SecretKey associada. A ausência de uma SecretKey geralmente significa que você tentou fazer uma solicitação com um tipo de entidade inválido. As APIs que exigem uma SecretKey só podem ser chamadas por entidades de título. Observe que as APIs de SecretKey são voltadas para cenários de servidor ou administração e não estão disponíveis no GDK.

Falhas do serviço PlayFab

Se o SDK fizer a solicitação ao serviço PlayFab com êxito, o serviço ainda poderá retornar um erro. Há dois tipos amplos de erros do serviço PlayFab: globais, que podem ser retornados por qualquer API do PlayFab, e específicos, que são específicos de cada API. Veja a seguir a lista completa de falhas globais:
  • E_PF_API_CLIENT_REQUEST_RATE_LIMIT_EXCEEDED (0x892354dd)
  • E_PF_API_CONCURRENT_REQUEST_LIMIT_EXCEEDED (0x8923556b)
  • E_PF_CONCURRENT_EDIT_ERROR (0x8923549b)
  • E_PF_DATA_UPDATE_RATE_EXCEEDED (0x89235534)
  • E_PF_DOWNSTREAM_SERVICE_UNAVAILABLE (0x89235495)
  • E_PF_INVALID_API_ENDPOINT (0x89235499)
  • E_PF_OVER_LIMIT (0x892354ec)
  • E_PF_SERVICE_UNAVAILABLE (0x89235491)
  • E_PF_ACCOUNT_BANNED (0x89235423)
  • E_PF_ACCOUNT_DELETED (0x89235557)
  • E_PF_ACCOUNT_NOT_FOUND (0x89235422)
  • E_PF_API_REQUESTS_DISABLED_FOR_TITLE (0x8923553c)
  • E_PF_INVALID_CONTENT_TYPE (0x892354a6)
  • E_PF_INVALID_ENTITY_TYPE (0x8923558a):
  • E_PF_INVALID_PARAMS (0x89235421)
  • E_PF_INVALID_REQUEST (0x89235468)
  • E_PF_INVALID_TITLE_ID (0x89235425)
  • E_PF_NOT_AUTHENTICATED (0x8923546b)
  • E_PF_NOT_AUTHORIZED (0x89235478)
  • E_PF_NOT_AUTHORIZED_BY_TITLE (0x892354d5)
  • E_PF_PROFILE_DOES_NOT_EXIST (0x8923553f)
  • E_PF_TITLE_DELETED (0x89235570)
  • E_PF_UNKNOWN_ERROR (0x89235448)
Para obter mais informações sobre as orientações de nova tentativa para falhas do serviço, consulte Códigos de erro globais dos métodos de API do serviço PlayFab.

Falhas de limitação

Uma categoria de falhas do serviço são os erros de limitação, indicados por um código de status HTTP 429. Quando o serviço PlayFab retorna um erro de limitação, isso significa que o cliente está chamando um ponto de extremidade com muita frequência em um período específico. Quando o SDK recebe um erro de limitação, ele tenta novamente a solicitação automaticamente após uma pequena espera. Se a solicitação ainda não for bem-sucedida dentro da janela de novas tentativas configurada, o erro será repassado ao título. As configurações de nova tentativa do SDK podem ser definidas chamando PFSetHttpRetrySettings.

Falhas de rede

Se a pilha de rede subjacente retornar um erro, esse erro será repassado ao cliente. Uma ampla variedade de erros pode ocorrer dependendo da falha de rede. A maioria dos erros de rede resulta em E_HC_NO_NETWORK (0x89235006).

Detalhes adicionais de erros e rastreamento

Além do HRESULT, o serviço PlayFab às vezes retorna uma cadeia de caracteres errorDetails. Essa cadeia de caracteres não é exposta aos clientes finais, mas pode ser útil durante o desenvolvimento e a depuração. Para saber como habilitar o rastreamento detalhado para ver a cadeia de caracteres errorDetails retornada, consulte o guia de rastreamento.”.

Referência

[Tratamento de erros no Microsoft Game Development Kit][/gaming/gdk/_content/gc/system/overviews/error-handling]
Última modificação em 8 de outubro de 2026