HTTP 상태 코드
| 상태 | 의미 | 재시도 가능 |
|---|---|---|
| 200 | 성공 | 해당 없음 |
| 400 | 잘못된 요청 (잘못된 매개변수, 잘못된 민트, 지원되지 않는 토큰 프로그램) | 아니오 |
| 401 | 인증 실패 (누락 또는 잘못된 API 키) | 아니오 |
| 404 | 지원되지 않는 마켓 또는 아직 인덱싱되지 않은 민트 | 아니오 (아래 참조) |
| 422 | 처리 불가 (유효한 요청이지만 실행 가능한 경로 없음) | 아니오 |
| 429 | 속도 제한 | 예 |
| 502 | 잘못된 게이트웨이 (업스트림 RPC 또는 DEX 장애) | 예 |
| 503 | 서비스 사용 불가 (라우터 준비되지 않음 또는 일시 중지) | 예 |
| 500 | 내부 서버 오류 | 예 |
응답 엔벨로프
성공
지원되지 않는 마켓
지원되는 DEX에서 실행 가능한 경로가 없는 민트일 때 반환됩니다.message 필드는 사람과 AI가 읽을 수 있는 설명을 제공합니다.
| 사유 | 상태 | 설명 |
|---|---|---|
no_route | 404 | 이 민트에 대한 풀이 지원되는 DEX에 없음 |
invalid_mint | 400 | 민트 주소가 온체인에 존재하지 않음 |
unsupported_token_program | 400 | 토큰이 SPL Token 또는 Token-2022 이외의 프로그램 사용 |
인덱싱되지 않음
민트가 존재하지만 아직 해석되지 않았을 때 반환됩니다. 짧은 지연 후 재시도하세요.오류
검증 실패, 속도 제한, 서버 오류에 대한 일반 오류 응답입니다.ExitApiError 타입을 통해 표면화합니다.
ExitApiError 종류
모든 SDK는 kind 판별자가 있는 ExitApiError(또는 동등물)를 노출합니다:
| 종류 | 트리거 | 재시도 가능 |
|---|---|---|
transport | 네트워크 장애, DNS 오류, 타임아웃 | 예 |
http_status | 2xx가 아닌 HTTP 응답 | 상태 >= 500 또는 429인 경우 예 |
envelope_status | 서버가 { "status": "error" }를 반환 | 아니오 |
parse | 응답 본문을 JSON으로 파싱할 수 없음 | 아니오 |
재시도 가능 여부 확인
내장 재시도 동작
모든 SDK에는 다음 기본값으로 자동 재시도가 포함됩니다:| 설정 | 기본값 |
|---|---|
| 최대 시도 | 2 |
| 초기 백오프 | 25 ms |
| 최대 백오프 | 25 ms |
| 지터 | 25 ms |
| 연결 타임아웃 | 200 ms |
| 시도 타임아웃 | 900 ms |
isRetryable()이 true를 반환하는 오류(전송 장애, 5xx 응답, 429 속도 제한)에 대해서만 재시도가 트리거됩니다.
재시도 정책 사용자 정의
모범 사례
400,401,422오류는 재시도하지 마세요. 코드에서 수정해야 할 요청 또는 인증 문제입니다."status": "unsupported"인404는 재시도하지 마세요. 민트에 지원되는 마켓이 없습니다."status": "not_indexed"인404는 한 번 재시도하세요. 민트가 해석에 잠시 시간이 필요할 수 있습니다.429응답에는 지수 백오프를 적용하세요. 내장 재시도가 자동으로 처리합니다.502및503오류에는 백오프와 함께 재시도하세요. 일시적인 인프라 문제입니다.- 디버깅을 위해
kind,status,body를 포함한 오류 세부사항을 기록하세요. - 일관된
envelope_status오류가 보이면mint주소와user_pubkey가 올바른지 확인하세요.

