- Code - Le code d’erreur HTTP retourné par le serveur
- ErrorCode - Un code d’erreur numérique propre à PlayFab.
- Error - Un code lisible 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 répertorie les codes d’erreur courants que vous pouvez rencontrer. Si le code d’erreur que vous recherchez ne figure pas sur cette page, consultez nos recommandations plus générales sur les codes d’état de réponse HTTP.
Codes pouvant être réessayés sans risque
Il est généralement sûr de réessayer les requêtes qui échouent avec ces codes d’erreur, avec un délai d’attente exponentiel. Ces erreurs signifient généralement que votre client effectue des appels trop rapidement, mais la requête elle-même peut être valide.APIClientRequestRateLimitExceeded (1199): indique un trop grand nombre d’appels sur une courte période.APIConcurrentRequestLimitExceeded (1342): indique un trop grand nombre d’appels simultanés.ConcurrentEditError (1133): indique un trop grand nombre d’appels simultanés ou des appels séquentiels très rapides.DataUpdateRateExceeded (1287): indique un trop grand nombre d’appels simultanés ou des appels séquentiels très rapides.DownstreamServiceUnavailable (1127): indique que PlayFab ou un service tiers rencontre peut-être un problème temporaire.ServiceUnavailable (1123): indique que PlayFab rencontre peut-être un problème temporaire ou que le client effectue trop d’appels d’API trop rapidement. Si vous réessayez cette requête, il est important d’utiliser correctement une stratégie d’attente exponentielle.
Codes à ne 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 répertoriés avec une méthode d’API entrent également 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’un de nos 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 indiqué dans l’URL de la méthode. Dans la plupart des 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 nécessite une authentificationSessionTicketsans 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 incorrecte 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 incorrectes sont envoyées à un module complémentaire tiers et que notre serveur a rencontré un résultat ou une erreur inconnus lors de l’interaction avec des systèmes externes. Pour résoudre ce problème, testez vos entrées et essayez 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 de l’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 entraînera le dépassement de la limite d’utilisation du service, telle qu’elle est 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 (répertoriées sur la page de documentation de ces méthodes), mais si vous les voyez, ils ont des conséquences importantes dont vous devez être conscient.APIConcurrentRequestLimitExceeded (1342): votre titre sollicite trop fortement 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 les suivants :- La fréquence à laquelle vos appels de script utilisent un temps proche du maximum par appel (ou pire, expirent).
- La fréquence à laquelle vous appelez CloudScript par joueur. Les appels permettant d’obtenir la liste des joueurs d’un segment sont l’élément clé à examiner (une tâche ciblant un segment provoque également une réévaluation, mais cela devrait être peu fréquent).
ConnectionTimeout (2): selon les spécificités du SDK que vous utilisez et de la pile réseau sous-jacente, il est possible de voir des erreurs telles que ConnectionError, ConnectionTimeout ou d’autres erreurs liées à des difficultés pour contacter les serveurs PlayFab. Elles indiquent toutes des problèmes réseau. La source la plus courante est une déconnexion côté client. Il est également possible d’obtenir ces erreurs 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 alors relancer l’opération plus tard.
