본문으로 건너뛰기

오류 처리

오류 원인을 확인하고 재시도나 문의가 필요한지 판단하세요.

공통 모델 호출 오류와 작업 및 파일 API의 오류는 필드 구조가 다릅니다.

다시 보내기 전에 오류 형식과 요청 단계를 구분하기

모델 호출의 공통 오류는 최상위 type과 error_ref를 사용하지만 영상 작업과 파일 API는 error.code를 사용하기도 합니다. Batch의 업로드와 작업 제출에는 각각 다른 요청 키와 재시도 조건이 있습니다. 생성 요청이나 Batch 제출의 응답을 받지 못했다면 새 POST를 보내기 전에 영상 접수 여부 확인 또는 Batch의 원래 요청 확인을 따르세요. 같은 요청을 새로 실행하면 비용이 다시 발생할 수 있습니다.

오류 응답 구조

공통 모델 호출 오류는 다음 JSON 구조를 사용합니다. 작업 조회, 참조 파일 업로드와 파일 링크 발급에는 error.code를 사용하는 오류도 있으므로 작업 조회와 References, 파일 링크 발급의 응답 형식을 따릅니다.

{ "type": "<에러 코드>", "title": "<짧은 제목>", "status": <HTTP 상태 코드>, "detail": "<원인을 설명하는 본문>", "error_ref": "<문의 시 전달할 식별자>" }
필드설명
type클라이언트가 분기할 오류 코드입니다
title사람이 읽기 위한 짧은 제목입니다
statusHTTP 상태 코드와 같은 값입니다
detail원인을 설명하는 문장입니다. 프로그램의 분기 기준으로 사용하지 않습니다
error_ref문의 시 전달할 오류 참조값입니다

이 형식의 오류는 HTTP 상태, type, error_ref를 함께 저장합니다. API 키 값이나 전체 인증 헤더는 로그와 문의 내용에 남기지 않습니다.

오류 type별 대응

위 공통 형식으로 반환된 오류는 표에 없더라도 status와 type을 기준으로 처리하고, detail은 진단용으로만 사용합니다.

typeHTTP먼저 확인할 것
invalid_credentials / missing_credentials401인증의 경로별 헤더와 키 값을 확인합니다
api_key_expired401키의 만료일과 현재 사용할 수 있는 키를 확인합니다
insufficient_units402유닛에서 보유 유닛과 차단 상태를 확인합니다. 같은 요청을 반복해도 시간이 지나서 자동 복구되지 않습니다
ip_not_allowed403요청을 보내는 서버의 출발지 IP가 키의 IP 허용 목록에 포함됐는지 확인합니다
overage_not_allowed (code: OVERAGE_NOT_ALLOWED)403보유 unit과 관계없이 Batch에는 초과 unit 사용 허용이 필요합니다. 관리자에게 스페이스 설정 확인을 요청합니다. 유닛 구매만으로는 해결되지 않습니다
policy_limit_exceeded429실시간 호출과 Batch 신규 제출의 정책 검사에서 반환됩니다. 적용된 키 또는 구성원 한도와 사용량을 확인합니다. 새 요청 키로 우회하지 않습니다. Batch 문제 해결을 따릅니다
usage_limit_exceeded429실시간 사용량 추적에서 반환됩니다. 해당 API 키의 월 한도를 확인합니다
rate_limit_exceeded429응답의 안내를 확인하고 간격을 두고 재시도합니다
invalid_parameter / validation_error400detail을 확인하고 요청 필드를 수정합니다
invalid_image_file / image_fetch_error400이미지 파일의 형식, 크기와 읽기 가능 여부를 확인한 뒤 다시 보냅니다
invalid_model400모델은 존재하지만 선택한 엔드포인트에서 지원하지 않습니다. 에셋에서 지원 API를 확인합니다
context_length_exceeded400입력을 줄이고 에셋에서 모델의 현재 컨텍스트를 확인합니다
model_not_found404에셋에서 모델 코드와 지원 엔드포인트를 확인합니다
service_error / proxy_error502반복 가능한 조회는 간격을 두고 제한적으로 재시도합니다. 생성 요청의 접수 여부가 불분명하면 재시도 기준을 먼저 확인합니다
service_timeout504반복 가능한 조회는 간격을 두고 제한적으로 재시도합니다. 생성 요청의 접수 여부가 불분명하면 재시도 기준을 먼저 확인합니다

재시도할 수 있는 경우

영상 생성 POST의 응답이 유실되거나 제한시간을 넘기면 먼저 접수 여부를 확인합니다. 오류 코드만 보고 새 요청을 반복하면 영상이 중복 생성될 수 있습니다. 작업 ID를 받았다면 같은 작업을 조회하고, ID가 없다면 요청 시각과 스페이스 이름으로 문의합니다.

상태대응
429 rate_limit_exceeded응답에 재시도 안내가 있으면 따르고, 없으면 간격을 늘려 재시도합니다
429 policy_limit_exceeded실시간 호출이나 Batch 제출을 반복하지 말고 적용된 키 또는 구성원 한도와 사용량을 확인합니다
429 usage_limit_exceeded반복 재시도하지 말고 해당 키의 월 한도를 확인합니다
402 insufficient_units반복 재시도하지 말고 보유 유닛과 차단 상태를 확인합니다
5xx접수 여부가 불분명한 생성 요청은 다시 보내지 않습니다. 안전하게 반복할 수 있는 조회 등은 간격을 늘려 제한적으로 재시도합니다
그 밖의 4xx요청, 인증, 모델 코드를 수정한 뒤 다시 호출합니다

지원에 전달할 정보

재시도 후에도 같은 오류가 계속되면 렛서 플랫폼에 로그인한 뒤 플랫폼 내 문의 기능을 사용합니다. 요청 시각, 엔드포인트, HTTP 상태와 응답에 있는 type 또는 error.code, error_ref, 확보한 작업 ID를 남기고, API 키나 전체 인증 헤더는 보내지 않습니다.

비동기 영상 작업과 파일 오류

Seedance 영상 생성의 접수 오류, 작업 조회 오류와 파일 수령 오류는 각각 구분합니다. 작업 조회의 HTTP 503을 생성 실패로 처리하거나 새 생성 요청으로 자동 재시도하지 않습니다. 작업 ID를 받았다면 같은 작업을 조회합니다.

파일 준비 중에는 기다렸다가 같은 미디어 ID로 다시 확인합니다. 다운로드 링크 만료는 새 링크 발급으로 복구할 수 있지만 파일 보관 만료는 다릅니다. 발급 요청의 오류와 반환 링크를 열 때의 오류는 파일 링크 발급에서 각각 확인합니다.