- Code - 伺服器傳回的 HTTP 錯誤碼
- ErrorCode - PlayFab 專屬的數字錯誤碼。
- Error - 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):如果您使用我們的其中一個 SDK,應該不可能收到此錯誤。如果您自行對 PlayFab API 方法進行原始 HTTPS 呼叫,您的Content-Type標頭必須是application/json。不接受其他格式。InvalidEntityType (1373):此 API 不支援用於驗證之權杖中的實體類型。InvalidParams (1000):傳送至 PlayFab 的 API 要求物件具有無效的參數,無法執行。InvalidRequest (1071):傳送至 PlayFab 的 API 要求物件無效,無法執行。InvalidTitleId (1004):要求提供的 TitleId 不符合方法 URL 中提供的遊戲。在大部分 SDK 中,您不應為登入要求指定 TitleId,因為系統會為您處理。在管理 API 中,明確的 TitleId 是 Dev->Test->Live 安全功能。NotAuthenticated (1074):用戶端未先登入就嘗試呼叫需要SessionTicket驗證的 API。NotAuthorized (1089):認證不正確,或其他與登入相關的錯誤輸入。NotAuthorizedByTitle (1191):此方法已由 API 原則停用,無法呼叫。ProfileDoesNotExist (1298):嘗試存取不存在的實體 (玩家、角色、遊戲等)。可能是輸入錯誤,或某處有錯誤的輸入。TitleDeleted (1347):此遊戲已從 PlayFab 刪除,無法再使用。UnknownError (1039):這通常發生在將錯誤的資訊傳送至協力廠商附加元件,且我們的伺服器在與外部系統互動時遇到未知結果或錯誤。若要解決此問題,請嘗試調整您的輸入,並試著判斷您的輸入是否在某方面無效。否則,請在論壇上回報錯誤,並附上您的 titleId、完整的要求 JSON (如果可能) 和錯誤輸出。Postman 是偵錯此情況的實用工具。InvalidAPIEndpoint (1131):表示此要求的 URL 對此遊戲無效。OverLimit (1214):表示嘗試執行的作業會導致服務使用量超過 Game Manager 限制頁面中所示的限制。請評估傳回的錯誤詳細資料,以判斷會超過哪個限制。
其他值得注意的錯誤碼
這些代碼只會在特定 API 方法上發生 (列在這些方法的文件頁面上),但如果您看到它們,就應留意其帶來的重要後果。APIConcurrentRequestLimitExceeded (1342):您的遊戲對 CloudScript 的呼叫過於頻繁,或嘗試過於頻繁地強制進行區段評估 (或兩者皆是)。針對前者,需要檢查的兩件事為:- 您的指令碼呼叫有多常使用接近每次呼叫的最大時間 (或更糟的是逾時)。
- 您對每位玩家呼叫 CloudScript 的頻率。取得區段中玩家清單的呼叫是需要檢查的關鍵 (以區段為目標的工作也會導致重新評估,但這應該不常發生)。
ConnectionTimeout (2):視您使用的 SDK 細節和基礎網路堆疊而定,可能會看到 ConnectionError、ConnectionTimeout 等錯誤,或其他與連線至 PlayFab 伺服器困難相關的錯誤。這些都表示有網路問題。最常見的來源是用戶端中斷連線。當用戶端與 PlayFab 伺服器之間的網際網路路由因某些原因而中斷時,也可能收到這些錯誤。遊戲能處理這些錯誤的方式非常有限。最佳的回應方式是讓上游呼叫端或玩家知道無法建立連線。他們之後可以再次起始作業。
