메인 콘텐츠로 건너뛰기
HyperX API 요청이 실패하면 SDK는 대부분 HyperXServerException을 발생시킵니다. 초기화 자체의 실패는 HyperXInitializationException으로 분리됩니다.

기본 패턴

try
{
    var meta = await HyperX.Core.PublicStorage.GetMeta("config/liveops.json");
    Debug.Log($"Hash: {meta.Hash}");
}
catch (HyperX.HyperXServerException ex)
{
    Debug.LogWarning($"HyperX error: {ex.ErrorCode}");
    Debug.LogWarning($"TraceId: {ex.TraceId}, RequestId: {ex.RequestId}");

    if (ex.ErrorCode == "STORAGE_OBJECT_NOT_FOUND")
    {
        // 기본 설정을 사용하거나 운영자에게 파일 업로드를 요청합니다.
    }
}

확인할 수 있는 정보

필드용도
ErrorCode코드에서 분기하기 좋은 안정적인 오류 코드입니다.
ServerMessage서버가 전달한 사람이 읽을 수 있는 메시지입니다.
StatusCodeHTTP 상태 코드입니다.
TraceId서버 로그와 연결할 때 쓰는 추적 ID입니다.
RequestId요청 한 건을 식별하는 ID입니다.
Context파일명, 테이블 키, provider 등 오류 원인 파악에 필요한 값입니다.
플레이어에게는 원본 서버 메시지보다 게임에 맞는 문구를 보여주세요. 예를 들어 결제 검증 실패는 “구매 확인에 실패했습니다. 잠시 후 다시 시도해주세요.”처럼 안내하고, TraceIdRequestId는 고객지원용 로그에 남깁니다.

자주 처리하는 오류

상황대표 코드권장 처리
로그인 필요UNAUTHORIZED세션 갱신 후 다시 시도하고, 실패하면 로그인 화면으로 보냅니다.
파일 없음STORAGE_OBJECT_NOT_FOUND기본 리소스를 사용하거나 Console 업로드 상태를 확인합니다.
데이터 검증 실패VALIDATION_ERROR저장하려는 JSON과 Console 스키마를 맞춥니다.
소셜 토큰 오류INVALID_PROVIDER_TOKEN플랫폼 SDK에서 새 토큰을 받은 뒤 다시 로그인합니다.
채팅 권한 오류CHAT_SENDER_MUTED채팅 입력을 막고 뮤트 안내를 표시합니다.

다운로드 오류

PublicStorage.Get(...)은 다운로드 진행 객체를 먼저 반환합니다. 실제 실패는 progress.File을 기다릴 때 처리합니다.
var progress = HyperX.Core.PublicStorage.Get("patch/main.bundle", "patch/main.bundle");

try
{
    await progress.File;
}
catch (HyperX.HyperXServerException ex)
{
    Debug.LogWarning($"Download failed: {ex.ErrorCode}");
}