- Llamada a PF*Async(…), que inicia una operación asincrónica.
- (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.
- PF*GetResultSize(…) para recuperar el tamaño en bytes de la carga del resultado.
- PF*GetResult(…) para recuperar el resultado de la operación asincrónica.
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)
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 resultadoE_HC_NO_NETWORK (0x89235006).
