error.code, error.message를 함께 사용해 요청을 수정해야 하는지 아니면 재시도해야 하는지 판단하세요.
빠른 분류
오류 envelope
많은 CometAPI 실패 응답은 다음과 같은 오류 본문을 사용합니다:code를 비워 둡니다. status가 500인 경우, error.code와 error.message를 판단 기준으로 삼으세요.
400 Bad Request
400은 보통 요청이 정상적으로 처리되기 전에 요청 본문이 유효성 검사를 통과하지 못했음을 의미합니다.
일반적인 원인:
model같은 필수 필드 누락- 잘못된 JSON 형태
- 잘못된 타입의 필드 전송
- 선택한 endpoint가 허용하지 않는 provider 전용 파라미터 재사용
your-model-id는 CometAPI Models page의 현재 model ID로 바꾸세요.
형식이 잘못된 모든 chat 요청이 400을 반환한다고 가정하지 마세요. messages 같은 필수 chat 필드 누락은 500과 error.code: invalid_request로도 나타날 수 있습니다.
500 Internal Server Error
대부분의 500 응답은 플랫폼 또는 provider 장애를 의미합니다. Chat Completions의 경우, 일부 형식이 잘못된 요청도 500으로 나타나면서 error.code: invalid_request를 함께 포함할 수 있습니다.
그 예로 messages가 누락된 요청이 있습니다:
500 응답에 error.code: invalid_request가 있으면 요청 문제로 처리하세요:
- 요청 본문을 수정합니다.
- payload를 endpoint schema와 비교합니다.
- payload를 수정한 후에만 재시도합니다.
500 응답이 잘못된 요청을 가리키지 않는다면, request id를 보관하고 백오프를 사용하세요.
401 Invalid Token
토큰 실패는 보통 다음과 같이 나타납니다:
- 헤더는 정확히
Authorization: Bearer $COMETAPI_KEY이어야 합니다. - 앱이
.env, shell 기록, 또는 배포된 secret store에서 오래된 키를 불러오고 있지 않은지 확인하세요. - 하나의 키는 실패하고 다른 키는 동일한 요청에서 작동한다면, 이를 endpoint 문제가 아니라 토큰 문제로 판단하세요.
403 Forbidden
403은 대부분 다음 상황 중 하나입니다:
- 요청이 WAF 필터링과 같은 플랫폼 측 규칙에 의해 차단됨
- token 또는 route가 요청한 model 또는 요청 형식을 사용할 수 없음
- 선택한 model이 전달한 고급 파라미터 중 하나를 거부함
- 정상 작동이 확인된 model에 대해 매우 단순한 텍스트 요청으로 다시 시도하세요.
- 고급 필드와 provider별 파라미터를 제거한 뒤, 점진적으로 다시 추가하세요.
- 응답에 request id가 포함되어 있다면 support에 문의하기 전에 이를 보관하세요.
Wrong base URL or wrong path
Comet에서는 path 실수가 다음과 같이 나타날 수 있습니다:- 리디렉션
- 클라이언트가 리디렉션을 따르는 경우 JSON이 아닌 HTML 응답
- SDK 내부의 파싱 오류
- 요청이 API 계층에 정상적으로 도달하지 못함
- base URL에
/v1가 포함되어 있는지 확인하세요. - endpoint path가 문서와 정확히 일치하는지 확인하세요.
- path 문제를 디버깅하는 동안 자동 리디렉션 추적을 비활성화하세요.
413 Request Entity Too Large
413이 표시되면, 먼저 요청 크기 문제로 간주하세요. 일반적인 원인은 다음과 같습니다:
- 큰 base64 payload
- 인라인으로 포함된 지나치게 큰 이미지 또는 오디오
- 매우 큰 multipart 또는 JSON 본문
- 첨부된 콘텐츠를 줄이거나 압축하세요.
- 큰 작업을 더 작은 요청으로 나누세요.
- 일반 텍스트 길이만이 유일한 원인이라고 가정하지 마세요.
429 Too Many Requests
429는 재시도 가능한 오류로 처리하세요:
- jitter를 포함한 지수 백오프를 사용하세요.
- burst 동시성을 줄이세요.
- 어떤 route와 model이 먼저 포화되는지 확인할 수 있도록 요청 로깅을 계속 활성화해 두세요.
503, 504, and 524
이 상태 코드는 서버 측 또는 타임아웃 계열 실패입니다.
실용적인 가이드:
503: route 또는 provider 서비스가 일시적으로 사용 불가504및524: 플랫폼, edge, 또는 provider 서비스 사이에서 발생한 타임아웃 계열 실패
- 백오프를 적용해 재시도하세요.
request id, endpoint, model, 그리고 timestamp를 보관하세요.- 동일한 실패가 여러 번의 재시도에서도 반복된다면, 해당 맥락 정보와 함께 support에 문의하세요.
지원팀에 문의하기 전에
먼저 다음 세부 정보를 수집하세요:- HTTP 메서드
- 엔드포인트 경로
- Model ID
- 민감 정보를 제거한 요청 본문 JSON (대부분의 API 호출에서 가장 유용한 단일 항목입니다)
- 실패한 요청에서 사용했다면 쿼리 파라미터
- 클라이언트가 캡처했다면 정확한 응답 본문
- 전체 HTTP 상태 코드
- 정확한
error.message - 모든
request id - 대략적인 타임스탬프
- 동일한 요청이 다른 model 또는 다른 token으로는 작동하는지 여부
- 파일과 함께 전송한 필드 이름과 텍스트 값
- 파일 이름, 파일 유형, 대략적인 파일 크기
- 파일을 직접 업로드했는지, URL로 참조했는지, 또는 base64로 포함했는지 여부