Skip to main content
Existen varios puntos diferentes en los que puede producirse un error en una llamada de API asincrónica del SDK de PlayFab Services. El control de estos errores difiere en función de cómo y cuándo se produce el error en la operación. Al igual que la mayoría de las llamadas asincrónicas del GDK, las API de PlayFab siguen el mismo patrón general de llamada:
  1. Llamada a PF*Async(…), que inicia una operación asincrónica.
  2. (Opcional) Llamada a XAsyncGetStatus(…) para realizar un seguimiento del estado de la operación asincrónica. Puede usarse para esperar la finalización de la operación asincrónica.
  3. PF*GetResultSize(…) para recuperar el tamaño en bytes de la carga del resultado.
  4. PF*GetResult(…) para recuperar el resultado de la operación asincrónica.
Cada una de estas llamadas puede producir un error por diferentes motivos. En las secciones siguientes se detallan los tipos de errores más comunes.

Errores sincrónicos

Un error sincrónico se produce cuando la llamada inicial a PF*Async devuelve un error. Este tipo de error suele indicar un error de programación: un patrón de llamada no válido, argumentos no válidos, etc. Estos tipos de errores deben resolverse durante el desarrollo. La mayoría de los demás errores sincrónicos son irrecuperables y no pueden controlarse fácilmente (por ejemplo, E_OUTOFMEMORY).

Errores asincrónicos

Un error asincrónico se produce cuando falla cualquiera de las llamadas XAsyncGetStatus, PF*GetResultSize o PF*GetResult. El rango de errores asincrónicos es más amplio. Además de los errores debidos a argumentos no válidos, los errores asincrónicos se dividen en varias categorías que se describen con más detalle en las secciones siguientes.

Errores de validación de tokens

Antes de iniciar una llamada al servicio de PlayFab, el SDK realiza una validación del lado cliente para asegurarse de que el token de autenticación requerido está disponible y sigue siendo válido. Si esta comprobación falla, se devuelve uno de los errores siguientes:
  • E_PF_NOENTITYTOKEN (0x89235411): Indica que el EntityToken asociado al PFEntityHandle proporcionado ha expirado. Consulte Control de la expiración de tokens para obtener más información sobre cómo controlar esta situación.
  • E_PF_NOSECRETKEY (0x89235412) Indica que el PFEntityHandle proporcionado no tiene una SecretKey asociada. La falta de una SecretKey suele significar que ha intentado realizar una solicitud con un tipo de entidad no válido. Solo las entidades de título pueden llamar a las API que requieren una SecretKey. Tenga en cuenta que las API de SecretKey están orientadas a escenarios de servidor o administración y no están disponibles en el GDK.

Errores del servicio de PlayFab

Si el SDK realiza correctamente la solicitud al servicio de PlayFab, el servicio aún puede devolver un error. Hay dos tipos generales de errores del servicio de PlayFab: los globales, que puede devolver cualquier API de PlayFab, y los específicos, que son propios de cada API. A continuación se muestra la lista completa de errores globales:
  • 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 obtener más información sobre las instrucciones de reintento ante errores del servicio, consulte Códigos de error globales de los métodos de API del servicio de PlayFab.

Errores de limitación

Una categoría de errores del servicio son los errores de limitación, indicados por un código de estado HTTP 429. Cuando el servicio de PlayFab devuelve un error de limitación, significa que el cliente está llamando a un punto de conexión con demasiada frecuencia durante un período de tiempo específico. Cuando el SDK recibe un error de limitación, reintenta automáticamente la solicitud tras una pequeña espera. Si la solicitud sigue sin completarse correctamente dentro de la ventana de reintentos configurada, el error se transmite al título. La configuración de reintentos del SDK se puede establecer llamando a PFSetHttpRetrySettings.

Errores de red

Si la pila de red subyacente devuelve un error, ese error se transmite al cliente. Puede producirse una amplia variedad de errores en función del error de red. La mayoría de los errores de red dan como resultado E_HC_NO_NETWORK (0x89235006).

Detalles adicionales de errores y seguimiento

Además del HRESULT, el servicio de PlayFab a veces devuelve una cadena errorDetails. Esta cadena no se expone a los clientes finales, pero puede resultar útil durante el desarrollo y la depuración. Para aprender a habilitar el seguimiento detallado y ver la cadena errorDetails devuelta, consulte la Guía de seguimiento.”.

Referencia

[Control de errores en Microsoft Game Development Kit][/gaming/gdk/_content/gc/system/overviews/error-handling]
Última modificación el 28 de agosto de 2026