Skip to main content
PlayFab Services SDK에서 비동기 API 호출이 실패할 수 있는 다양한 지점이 있습니다. 이러한 오류를 처리하는 것은 작업이 실패하는 방법과 시점에 따라 다릅니다. GDK의 대부분의 비동기 호출과 마찬가지로, PlayFab API는 동일한 일반 호출 패턴을 따릅니다:
  1. PF*Async(…) 호출은 비동기 작업을 시작합니다.
  2. (선택 사항) XAsyncGetStatus(…) 호출은 비동기 작업의 상태를 추적합니다. 비동기 작업의 완료를 대기하는 데 사용할 수 있습니다.
  3. PF*GetResultSize(…) 는 결과 페이로드의 크기를 바이트 단위로 검색합니다.
  4. PF*GetResult(…) 는 비동기 작업의 결과를 검색합니다.
이러한 각 호출은 다양한 이유로 실패할 수 있습니다. 다음 섹션에서는 가장 일반적으로 발생하는 실패 유형에 대해 자세히 설명합니다.

동기 실패

동기 실패는 초기 PF*Async 호출이 오류를 반환하는 경우입니다. 이러한 유형의 실패는 일반적으로 프로그래밍 오류를 나타냅니다 — 잘못된 호출 패턴, 잘못된 인수 등. 이러한 유형의 오류는 개발 중에 해결되어야 합니다. 대부분의 다른 동기 실패는 치명적이며 쉽게 처리할 수 없습니다(예를 들어 E_OUTOFMEMORY).

비동기 실패

비동기 실패는 XAsyncGetStatus, PF*GetResultSize 또는 PF*GetResult 중 어느 것이 실패하는 경우입니다. 비동기 실패의 범위는 더 넓습니다. 잘못된 인수로 인한 오류 외에도, 비동기 실패는 다음 섹션에 자세히 설명된 여러 범주로 나뉩니다.

토큰 유효성 검사 실패

PlayFab 서비스 호출을 시작하기 전에 SDK는 필요한 인증 토큰이 사용 가능하고 여전히 유효한지 확인하기 위해 클라이언트 측 유효성 검사를 수행합니다. 이 확인이 실패하면 다음 오류 중 하나가 반환됩니다:
  • E_PF_NOENTITYTOKEN (0x89235411): 제공된 PFEntityHandle과 연결된 EntityToken이 만료되었음을 나타냅니다. 이 상황을 처리하는 방법에 대한 자세한 내용은 토큰 만료 처리를 참조하세요.
  • E_PF_NOSECRETKEY (0x89235412) 제공된 PFEntityHandle에 연결된 SecretKey가 없음을 나타냅니다. SecretKey가 없다는 것은 일반적으로 잘못된 Entity 타입으로 요청을 시도했음을 의미합니다. SecretKey가 필요한 API는 Title Entity에서만 호출할 수 있습니다. SecretKey API는 서버 또는 관리자 시나리오를 대상으로 하며 GDK에서는 사용할 수 없습니다.

PlayFab 서비스 실패

SDK가 PlayFab 서비스 요청을 성공적으로 수행하더라도 서비스는 여전히 오류를 반환할 수 있습니다. PlayFab 서비스 오류에는 두 가지 광범위한 유형이 있습니다: 어떤 PlayFab API에서든 반환될 수 있는 global과 API별 specific. 다음은 global 실패의 전체 목록입니다:
  • E_PF_API_CLIENT_REQUEST_RATE_LIMIT_EXCEEDED (0x892354dd)
  • E_PF_API_CONCURRENT_REQUEST_LIMIT_EXCEEDED (0x8923556b)
  • E_PF_CONCURRENT_EDIT_ERROR (0x8923549b)
  • E_PF_DATA_UPDATE_RATE_EXCEEDED (0x89235534)
  • E_PF_DOWNSTREAM_SERVICE_UNAVAILABLE (0x89235495)
  • E_PF_INVALID_API_ENDPOINT (0x89235499)
  • E_PF_OVER_LIMIT (0x892354ec)
  • E_PF_SERVICE_UNAVAILABLE (0x89235491)
  • E_PF_ACCOUNT_BANNED (0x89235423)
  • E_PF_ACCOUNT_DELETED (0x89235557)
  • E_PF_ACCOUNT_NOT_FOUND (0x89235422)
  • E_PF_API_REQUESTS_DISABLED_FOR_TITLE (0x8923553c)
  • E_PF_INVALID_CONTENT_TYPE (0x892354a6)
  • E_PF_INVALID_ENTITY_TYPE (0x8923558a):
  • E_PF_INVALID_PARAMS (0x89235421)
  • E_PF_INVALID_REQUEST (0x89235468)
  • E_PF_INVALID_TITLE_ID (0x89235425)
  • E_PF_NOT_AUTHENTICATED (0x8923546b)
  • E_PF_NOT_AUTHORIZED (0x89235478)
  • E_PF_NOT_AUTHORIZED_BY_TITLE (0x892354d5)
  • E_PF_PROFILE_DOES_NOT_EXIST (0x8923553f)
  • E_PF_TITLE_DELETED (0x89235570)
  • E_PF_UNKNOWN_ERROR (0x89235448)
서비스 실패 재시도 지침에 대한 자세한 내용은 PlayFab 서비스 글로벌 API 메서드 오류 코드를 참조하세요.

조절 실패

서비스 실패의 한 범주는 HTTP 429 상태 코드로 표시되는 조절 오류입니다. PlayFab 서비스가 조절 오류를 반환할 때, 이는 클라이언트가 특정 시간 동안 엔드포인트를 너무 자주 호출하고 있음을 의미합니다. SDK가 조절 오류를 받으면 짧은 백오프 후에 요청을 자동으로 다시 시도합니다. 구성된 재시도 창 내에서 요청이 여전히 성공하지 않으면 오류가 타이틀로 전달됩니다. PFSetHttpRetrySettings를 호출하여 SDK 재시도 설정을 구성할 수 있습니다.

네트워크 실패

기본 네트워크 스택이 오류를 반환하면 해당 오류가 클라이언트로 전달됩니다. 네트워크 실패에 따라 광범위한 오류가 발생할 수 있습니다. 대부분의 네트워크 오류는 E_HC_NO_NETWORK (0x89235006)가 됩니다.

추가 오류 세부 정보 및 추적

HRESULT 외에도, PlayFab 서비스는 때때로 errorDetails 문자열을 반환합니다. 이 문자열은 최종 클라이언트에 노출되지 않지만, 개발 및 디버깅 중에 유용할 수 있습니다. 반환된 errorDetails 문자열을 볼 수 있도록 상세 추적을 활성화하는 방법에 대해 알아보려면 추적 가이드를 참조하세요.”.

참조

[Microsoft Game Development Kit의 오류 처리][/gaming/gdk/_content/gc/system/overviews/error-handling]
마지막 수정일 2026년 8월 25일