グローバル API メソッドのエラー コード
このチュートリアルでは、すべての PlayFab API メソッドに適用されるグローバル エラー コードを列挙します。 以下の情報は、API エラーを解読するために使用できます。
各 API エラーには以下のフィールドが含まれています。
- コード - サーバーから返された HTTP エラー コード
- ErrorCode - PlayFab に固有の数値エラー コード。
- エラー - PlayFab に特有の人が判読できるコード。
- ErrorMessage - デバッグに役立つ追加のコンテキストを提供するエラーの説明。
- ErrorDetails - 常に存在するとは限りません。 特定のタイプのエラーに追加のコンテキストを提供します。
注意
このページでは、発生する可能性のある一般的なエラーコードを一覧しています。 探しているエラー コードがこのページにない場合は、より一般的な http レスポンス ステータス コードのガイダンスを参照してください。
再試行が安全なコード
通常、これらのエラーコードによって失敗したリクエストは、少し待ってから安全に再試行できます。 通常、これらのエラーはクライアントのコールの間隔が短すぎることを意味し、リクエスト自体は有効な場合があります。
APIClientRequestRateLimitExceeded (1199)
: 多くの呼び出しが一挙に実行されていることを示します。APIConcurrentRequestLimitExceeded (1342)
: 同時呼び出しが多すぎることを示します。ConcurrentEditError (1133)
: 通常、多すぎる呼び出しが同時に実行されているか、非常に速く連続して実行されていることを示します。DataUpdateRateExceeded (1287)
: 通常、多すぎる呼び出しが同時に実行されているか、非常に速く連続して実行されていることを示します。DownstreamServiceUnavailable (1127)
: PlayFab またはサードパーティのサービスに一時的な問題が発生していることを示します。ServiceUnavailable (1123)
: PlayFab に一時的な問題が発生しているか、クライアントがあまりにも多くの API 呼び出しを短い間隔で行っていることを示します。 このリクエストを再試行する場合は、指数バックオフ戦略を適切に使用することが重要です。
再試行できないコード
これらのエラー コードが表示された場合、決して再試行しないでください。バグを修正するか設定を変更しなければ、現在の状況でリクエストを完了することはできません。
API メソッドと合わせて列挙される特定のコードの大部分も、このカテゴリに分類されます。
AccountBanned (1002)
:
プレイヤーのアカウントが禁止されています。このエラーでは、すべての API メソッドが失敗します。AccountDeleted (1322)
: プレーヤーのアカウントが削除されました。このエラーが発生すると、すべての API メソッドが失敗します。AccountNotFound (1001)
: おそらくPlayFabId/TitlePlayerId
が正確にコピーされていないため、プレイヤーのアカウントが存在しません。 識別子が正しくない場合、常にこのエラーが発生します。APIRequestsDisabledForTitle (1295)
: このタイトルに対するすべての API 要求が無効化され、使用不可となっています。InvalidContentType (1144)
: Microsoft SDK のいずれかを使用している場合、このエラーが発生することはありません。 PlayFab API メソッドに独自の未加工 HTTPS 呼び出しを実行している場合、Content-Type
ヘッダーはapplication/json
とする必要があります。 その他の形式は許容されません。InvalidEntityType (1373)
: 認証に使用されるトークンのエンティティ型は、この API ではサポートされていません。InvalidParams (1000)
PlayFab に送信された API リクエスト オブジェクトのパラメーターは無効であり、実行できません。InvalidRequest (1071)
PlayFab に送信された API リクエスト オブジェクトは無効であり、実行できません。InvalidTitleId (1004)
: リクエストは、メソッドの URL で提供されたタイトルと一致しない TitleId を提供しました。 ほとんどの SDK では自動的に指定されるため、ログイン リクエストで TitleId を指定するべきではありません。 管理 API では、明示的な TitleId は Dev->Test->Live の安全機能です。NotAuthenticated (1074)
: クライアントは、ログインせずに、SessionTicket
認証を必要とする API の呼び出しを試行しました。NotAuthorized (1089)
資格情報が正しくないか、ログインに関連する入力が適切ではありません。NotAuthorizedByTitle (1191)
このメソッドは API ポリシーによって無効にされているため、呼び出すことができません。ProfileDoesNotExist (1298)
存在しないエンティティ (プレイヤー、キャラクター、タイトルなど) へのアクセスが試行されました。 タイポがあるか、いずれかの入力が誤っていると考えられます。TitleDeleted (1347)
このタイトルは PlayFab から削除されており、使用不可となっています。UnknownError (1039)
このエラーは通常、サードパーティのアドオンに不適切な情報が送信され、Microsoft のサーバーで外部システムとの通信中に不明な結果またはエラーが起こった場合に発生します。 これを解決するには、入力を試行し、入力が何らかの形で無効かどうかを判断します。 または、フォーラムにエラー、自分のタイトル、完全なリクエスト JSON (可能な場合)、エラー出力を報告します。 Postman は、このような状況をデバッグするための便利なツールです。InvalidAPIEndpoint (1131)
: この要求の URL がこのタイトルに対して無効であることを示します。OverLimit (1214)
: 操作を実行しようとすると、ゲーム マネージャーの制限ページに表示されるサービス使用量が制限値を超えることを示します。 返されたエラーの詳細を評価して、どの制限を超えているかを評価します。
注意が必要なその他のエラー コード
これらのコードは特定の API メソッド (これらのメソッドのドキュメント ページに列挙) でのみ発生しますが、表示された場合、注意が必要な重要な結果につながります。
APIConcurrentRequestLimitExceeded (1342)
タイトルが CloudScript を使用しすぎているか、頻繁にセグメントの評価を実行しすぎています (またはその両方)。 前者の場合は、以下の 2 点を調査してください。- スクリプトの呼び出しが、呼び出しごとの最大時間に近い時間を使っている (より悪い場合はタイムアウト) 頻度。
- プレイヤーごとに CloudScript を呼び出している頻度。 セグメントのプレイヤーのリストを取得するための呼び出しを調査することが重要です (セグメントをターゲットとするタスクでも再評価が発生しますが、頻繁ではありません)。
ConnectionTimeout (2)
: 使用している SDK と基盤となるネットワーク スタックの詳細によっては、ConnectionError、ConnectionTimeout、またはその他の関連エラーなどのエラーが表示されたり、PlayFab サーバーへの接続が困難になる可能性があります。 これらはすべてネットワークの問題を示しています。 最も一般的な原因は、クライアント側での切断です。 これらは、クライアントと PlayFab のサーバー間のインターネット ルーティングが何らかの理由で中断された場合にも取得される可能性があります。 これらのエラーを処理するためにゲームができることはほとんどありません。 最善の対応は、上流の呼び出し元またはプレーヤーに接続を確立できないことを知らせることです。 その後、後で操作を再度開始することができます。