- Code - Le code d’erreur HTTP retourné par le serveur
- ErrorCode - Un code d’erreur numérique propre à PlayFab.
- Error - Un code lisible par un humain propre à PlayFab.
- ErrorMessage - Une description de l’erreur qui fournit un contexte supplémentaire utile pour le débogage.
- ErrorDetails - Pas toujours présent. Fournit un contexte supplémentaire pour certains types d’erreurs.
Cette page liste les codes d’erreur courants que vous pourriez rencontrer. Si le code d’erreur que vous cherchez ne figure pas sur cette page, consultez nos directives plus générales sur les codes d’état de réponse HTTP.
Codes pour lesquels une nouvelle tentative est sûre
Il est généralement sûr de relancer les requêtes qui échouent avec ces codes d’erreur, en utilisant un délai d’attente exponentiel. Ces erreurs signifient habituellement que votre client effectue des appels trop rapidement, mais la requête elle-même peut être valide.APIClientRequestRateLimitExceeded (1199): Indique trop d’appels en une courte rafale.APIConcurrentRequestLimitExceeded (1342): Indique trop d’appels simultanés.ConcurrentEditError (1133): Indique trop d’appels simultanés ou des appels séquentiels très rapides.DataUpdateRateExceeded (1287): Indique trop d’appels simultanés ou des appels séquentiels très rapides.DownstreamServiceUnavailable (1127): Indique que PlayFab ou un service tiers éprouve peut-être un problème temporaire.ServiceUnavailable (1123): Indique que PlayFab éprouve peut-être un problème temporaire ou que le client effectue trop d’appels d’API trop rapidement. Si vous relancez cette requête, il est important d’utiliser correctement une stratégie d’attente exponentielle.
Codes pour lesquels il ne faut jamais réessayer
Si vous obtenez ces codes d’erreur, vous ne devez jamais réessayer, car la requête ne pourra jamais aboutir dans les circonstances actuelles sans correction de bogue ou modification de paramètre. La plupart des codes spécifiques listés pour une méthode d’API entrent aussi dans cette catégorie.AccountBanned (1002):
Le compte du joueur a été banni; toutes les méthodes d’API échoueront avec cette erreur.AccountDeleted (1322): Le compte du joueur a été supprimé; toutes les méthodes d’API échoueront avec cette erreur.AccountNotFound (1001): Le compte du joueur n’existe pas, probablement parce que vous ne copiez pas correctement unPlayFabId/TitlePlayerId. Cette erreur se produira toujours si l’identificateur n’est pas correct.APIRequestsDisabledForTitle (1295): Toutes les requêtes d’API ont été désactivées pour ce titre, et il ne peut plus être utilisé.InvalidContentType (1144): Il devrait être impossible d’obtenir cette erreur si vous utilisez l’une de nos trousses SDK. Si vous effectuez vos propres appels HTTPS bruts aux méthodes d’API PlayFab, votre en-têteContent-Typedoit êtreapplication/json. Aucun autre format n’est accepté.InvalidEntityType (1373): Le type d’entité dans le jeton utilisé pour l’authentification n’est pas pris en charge par cette API.InvalidParams (1000): L’objet de requête d’API envoyé à PlayFab contient des paramètres non valides et ne peut pas être exécuté.InvalidRequest (1071): L’objet de requête d’API envoyé à PlayFab n’est pas valide et ne peut pas être exécuté.InvalidTitleId (1004): La requête a fourni un TitleId qui ne correspond pas au titre fourni dans l’URL de la méthode. Dans la plupart des trousses SDK, vous ne devez pas spécifier de TitleId pour les requêtes de connexion, car cela est fait pour vous. Dans l’API d’administration, les TitleId explicites constituent une fonctionnalité de sécurité Dev->Test->Live.NotAuthenticated (1074): Le client a tenté d’appeler une API qui exige une authentificationSessionTicket, sans s’être connecté au préalable.NotAuthorized (1089): Informations d’identification incorrectes, ou autres entrées erronées liées à la connexion.NotAuthorizedByTitle (1191): Cette méthode a été désactivée par la stratégie d’API et ne peut pas être appelée.ProfileDoesNotExist (1298): Tentative d’accès à une entité (joueur, personnage, titre, etc.) qui n’existe pas. Il s’agit probablement d’une faute de frappe, ou d’une entrée erronée quelque part.TitleDeleted (1347): Ce titre a été supprimé de PlayFab et ne peut plus être utilisé.UnknownError (1039): Cette erreur se produit généralement lorsque des informations erronées sont envoyées à un module complémentaire tiers et que notre serveur a obtenu un résultat ou une erreur inconnus en interagissant avec des systèmes externes. Pour résoudre ce problème, faites des essais avec vos entrées et tentez de déterminer si elles sont non valides d’une manière ou d’une autre. Sinon, signalez l’erreur sur les forums, avec votre titleId, le JSON complet de la requête (si possible) et la sortie d’erreur. Postman est un outil utile pour déboguer cette situation.InvalidAPIEndpoint (1131): Indique que l’URL de cette requête n’est pas valide pour ce titre.OverLimit (1214): Indique qu’une tentative d’exécution d’une opération ferait dépasser l’utilisation du service au-delà de la limite indiquée dans les pages de limites de Game Manager. Évaluez les détails de l’erreur retournée pour déterminer quelle limite serait dépassée.
Autres codes d’erreur notables
Ces codes se produisent uniquement sur des méthodes d’API spécifiques (listées sur la page de documentation de ces méthodes), mais si vous les voyez, ils entraînent des conséquences importantes dont vous devez être conscient.APIConcurrentRequestLimitExceeded (1342): Votre titre sollicite trop CloudScript, ou tente de forcer l’évaluation des segments trop fréquemment (ou les deux). Dans le premier cas, les deux éléments à examiner sont :- La fréquence à laquelle vos appels de script utilisent un temps presque maximal par appel (ou pire, expirent).
- La fréquence à laquelle vous appelez CloudScript par joueur. Les appels visant à obtenir la liste des joueurs d’un segment seraient l’élément clé à examiner (une tâche ciblant un segment entraîne aussi une réévaluation, mais cela devrait être peu fréquent).
ConnectionTimeout (2): Selon les particularités de la trousse SDK que vous utilisez et de la pile réseau sous-jacente, il est possible de voir des erreurs comme ConnectionError, ConnectionTimeout ou d’autres erreurs liées à des difficultés à joindre les serveurs PlayFab. Elles indiquent toutes des problèmes de réseau. La source la plus courante est une déconnexion du côté client. Il est aussi possible de les obtenir lorsque le routage Internet entre le client et les serveurs de PlayFab est perturbé pour une raison quelconque. Un jeu ne peut pas faire grand-chose pour gérer ces erreurs. La meilleure réponse consiste à informer les appelants en amont ou le joueur qu’une connexion ne peut pas être établie. Ils pourront ensuite relancer l’opération plus tard.
