콘텐츠로 이동

오류 처리

앙크 Public API는 표준 HTTP 상태 코드와 세부 error 문자열을 포함한 일관된 JSON 포맷으로 오류를 반환합니다.


모든 에러 응답은 다음 JSON 스키마를 따릅니다:

{
"error": "idempotency_conflict",
"message": "The idempotency key was already used with a different request payload.",
"param": "idempotency_key"
}

상태 코드에러 코드의미 및 권장 조치
400 Bad Requestinvalid_input, validation_failed요청 바디 또는 쿼리 파라미터 형식 오류. 요청 데이터 수정 필요.
401 Unauthorizedunauthorized, invalid_api_key유효하지 않거나 누락된 Bearer 토큰. API 키 확인 필요.
403 Forbiddeninsufficient_scope, quota_exceededAPI 키의 스코프 부족 또는 플랜 한도 초과.
404 Not Foundnot_found요청한 리소스(content_id, connection_id 등)가 존재하지 않음.
409 Conflictidempotency_conflict동일한 idempotency_key로 다른 페이로드가 이미 요청됨. 새 키 생성 필요.
423 Lockedbrand_locked요금제 만료 또는 정책 위반으로 브랜드가 잠김. 결제 관리 확인.
429 Too Many Requestsrate_limited분당 API 호출 한도 초과. Retry-After 헤더 확인 후 대기.
500 Server Errorinternal_server_error앙크 서버 일시 오류. 지수 백오프로 재시도 가능.
503 Service Unavailablesns_provider_unavailable외부 SNS API 일시 장애. 나중에 재시도.

🔍 주요 비즈니스 에러 응답 예시

섹션 제목: “🔍 주요 비즈니스 에러 응답 예시”

1. 403 Insufficient Scope (스코프 부족)

섹션 제목: “1. 403 Insufficient Scope (스코프 부족)”
{
"error": "insufficient_scope",
"message": "The API key does not have the required 'publishing:create' scope."
}

2. 409 Idempotency Conflict (멱등성 키 충돌)

섹션 제목: “2. 409 Idempotency Conflict (멱등성 키 충돌)”
{
"error": "idempotency_conflict",
"message": "Idempotency key 'launch-001' is already bound to a different request hash.",
"param": "idempotency_key"
}

3. 400 Media Validation Failed (미디어 검증 실패)

섹션 제목: “3. 400 Media Validation Failed (미디어 검증 실패)”
{
"error": "sns_content_media_maximum_exceeded",
"message": "Bluesky supports a maximum of 4 images per post.",
"param": "media"
}

  • 재시도 가능 (5xx, 네트워크 타임아웃): **동일한 idempotency_key**를 유지하면서 지수 백오프(Exponential Backoff with Jitter)를 적용하여 재전송하세요.
  • 재시도 불가 (400, 401, 403, 404, 409): 클라이언트 코드나 요청 페이로드를 수정한 후 새 멱등성 키로 다시 요청해야 합니다.