다음을 통해 공유


글로벌 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를 정확하게 복사하지 않기 때문일 수 있습니다. ID가 올바르지 않은 경우 항상 이 오류가 발생할 것입니다.

  • 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): 작업을 수행하려고 하면 게임 관리자 제한 페이지에 표시된 것처럼 서비스 사용량이 제한을 초과하게 됨을 나타냅니다. 반환된 오류 세부 정보를 평가하여 초과되는 제한을 결정합니다.

기타 주요 오류 코드

이러한 코드는 특정 API 메소드(그러한 메소드에 대한 설명서 페이지에 열거됨)에서‘만’ 발생하지만, 그러한 것이 보이는 경우, 귀하가 주목해야 하는 중요한 결과가 있습니다.

  • APIConcurrentRequestLimitExceeded (1342): 귀하의 타이틀이 CloudScript를 지나치게 적중하고 있거나 또는 세그먼트 평가를 너무 자주 적용하려고 시도하는 중입니다(또는 둘 다). 전자의 경우, 검사할 두 가지:

    1. 스크립트 호출이 호출당 최대한에 가까운 시간(또는 최악의 경우, 타임아웃)을 얼마나 자주 활용하는가?
    2. 플레이어당 CloudScript를 얼마나 자주 호출하는가? 한 세그먼트에서 플레이어 목록을 받기 위한 호출이 검사해야 할 주요 일일 것입니다(세그먼트를 겨냥한 일도 재평가를 야기하지만, 자주해서는 안 됩니다).
  • ConnectionTimeout (2): 사용 중인 SDK의 특성과 기본 네트워킹 스택에 따라 ConnectionError, ConnectionTimeout 또는 PlayFab 서버에 대한 연결 문제와 관련된 기타 오류와 같은 오류가 표시될 수 있습니다. 이들은 모두 네트워킹 문제를 나타냅니다. 가장 일반적인 원인은 클라이언트 측의 연결 끊김입니다. 클라이언트와 PlayFab의 서버 간의 인터넷 라우팅이 어떤 이유로 중단된 경우에도 이를 얻을 수 있습니다. 이러한 오류를 처리하기 위해 게임에서 할 수 있는 일은 거의 없습니다. 가장 좋은 응답은 업스트림 호출자 또는 플레이어에게 연결을 설정할 수 없음을 알리는 것입니다. 그런 다음 나중에 작업을 다시 시작할 수 있습니다.