문서
도움말

오류와 제한

Markdown

응답 코드의 의미와 해결 방법입니다. 모든 오류는 JSON으로 반환되며 Request ID를 포함합니다.

전체 가이드

오류 형식

호출한 API의 형식으로 오류를 반환합니다. 객체 error — OpenAI, {"type": "error", "error": {...}} — Anthropic 및 error — 다음 필드가 포함된 status 및 details — Gemini 형식입니다. 따라서 SDK는 일반 API 오류로 인식합니다.

  • error.code 및 error.reason — 아래 표의 오류 분류와 동일한 값입니다. error.type — 형식의 표준 값입니다(예: invalid_request_error 또는 server_error).
  • error.request_id (Anthropic에서는 request_id 최상위 필드), 헤더 X-Request-ID 및 메시지 끝부분에 요청 식별자가 표시됩니다.
  • Gemini 오류 분류 필드: error.details: ErrorInfo.reason — 동일 코드를 대문자로 표시합니다(예: MODEL_OVERLOADED), domain — ailoot.ai; 요청 식별자 필드: RequestInfo.requestId.
  • Gemini 형식에서 자동 재시도하면 안 되는 5xx 오류와 result_pending_check 는 상태 409 및 status ABORTED: Gemini SDK와 CLI의 자동 재시도를 방지합니다. 오류 분류 필드: ErrorInfo.reason (예: MODEL_TIMEOUT 또는 RESULT_PENDING_CHECK).
  • OpenAI 형식 응답에는 다음 최상위 필드도 있습니다: code 및 message — 이전 클라이언트용입니다.
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

오류 코드

HTTP분류(reason)발생한 문제해결 방법
400invalid_request잘못된 요청: 본문 또는 매개변수 오류, 모델이 요청 필드·첨부·도구를 지원하지 않음, 주소로 키 전송오류 메시지에 따라 요청을 수정하세요. 미지원 필드·첨부·도구를 제거하고 키는 헤더로 보내세요. 미지원 항목으로 인한 거부는 금액 예약 전에 발생하므로 아무 금액도 차감되지 않습니다
400context_length_exceeded요청이 모델 컨텍스트보다 김대화 기록을 줄이거나 더 큰 컨텍스트의 모델을 선택하세요
400content_policy_violation모델 규칙에 의해 요청 거부요청을 다시 작성하세요
401invalid_api_key키 누락 또는 잘못된 키키가 완전하게 전달됐는지 확인하세요
401api_key_disabled키 비활성화키를 활성화하거나 새 키를 만드세요
402insufficient_balance, insufficient_quota최소 예약액도 충당하지 못하는 가용 잔액(insufficient_quota — OpenAI SDK에 익숙한 형식으로 표시한 동일 상황)잔액을 충전하거나 max_tokens를 줄이세요
402api_key_quota_exhausted키 전체 지출 한도 소진대시보드에서 키 한도를 늘리세요
402payment_disputed이의 제기된 결제로 인한 계정 채무상환 전까지 새 요청이 중지됩니다. 지원팀에 문의하세요
403api_key_expired키 만료새 키를 만드세요
403account_inactive계정 비활성화지원팀에 문의하세요
403permission_denied키에 해당 요청이 허용되지 않음(예: IP 제한)키 제한을 확인하세요
404model_not_found존재하지 않는 모델/v1/models의 ID와 비교하세요
404unsupported_endpoint이 형식에서 모델이 작동하지 않음다른 형식 또는 모델을 선택하세요
404not_found존재하지 않는 경로 또는 객체(예: 작업)주소와 식별자를 확인하세요
409duplicate_request동일 멱등성 키의 작업이 이미 접수됐으며 완료됐을 수 있음첫 작업의 결과를 확인하고 새 작업을 보내지 마세요
409not_ready, video_not_ready영상 또는 기타 작업이 아직 준비되지 않음나중에 상태를 조회하세요
409, 503result_pending_check요청 결과를 확인 중입니다. 영상 작업의 경우 다음 플래그가 result_pending_check: true 상태 응답에 있으며 작업 자체의 상태는 in_progress요청을 다시 보내지 마세요. 상태는 내역(GET https://ailoot.ai/api/v1/usage)에 표시됩니다. 영상 작업을 다시 만들지 말고 나중에 GET /v1/videos/{id}로 확인하세요
410model_retired모델 서비스 종료GET /v1/models에서 새 버전을 선택하세요
413request_too_large요청 본문이 너무 큼파일 또는 대화 기록을 줄이세요
429rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_full계정의 요청 또는 동시 요청이 너무 많음다음 헤더의 시간만큼 기다리세요: Retry-After(보통 10초). 이후 다시 시도하세요
429usage_limit_reached키 지출 시간 창 소진(5시간, 1일 또는 7일)시간 창이 갱신될 때까지 기다리거나 키 한도를 늘리세요
500internal_errorAiloot 오류Request ID와 함께 지원팀에 문의하세요
502invalid_model_response, empty_response, incomplete_response모델이 잘못되거나 비어 있거나 불완전한 응답을 반환함계정 화면의 기록에서 Request ID를 찾으세요. 결과나 차감 내역이 있다면 재시도는 두 번째 유료 요청을 생성합니다. 기록이 없다는 사실만으로 요청이 전송되지 않았거나 실행되지 않았다고 확인할 수는 없습니다. 전송 여부가 불명확한 요청은 다시 보내지 말고 Request ID와 함께 고객 지원에 문의하세요.
502result_not_deliveredAiloot의 책임으로 결과가 전달되지 않아 예약액 또는 차감액 반환요청을 다시 보낼 수 있습니다
503model_overloaded모델 일시 과부하X-Should-Retry: true이면 Retry-After초 뒤에 다시 시도하세요. false이면 먼저 내역에서 Request ID를 확인하세요
503model_unavailable모델 일시 이용 불가다른 모델을 선택하세요. X-Should-Retry: true이면 Retry-After초 뒤에 다시 시도하고, false이면 먼저 내역에서 Request ID를 확인하세요
503service_unavailableAiloot 측 일시적 오류X-Should-Retry: true이면 Retry-After초 뒤에 다시 시도하세요. false이면 먼저 내역에서 Request ID를 확인하세요
503charge_not_confirmed차감 확인에 실패해 응답을 전달하지 못함. 예약액은 반환됐고 금액은 차감되지 않음X-Should-Retry: true이면 Retry-After초 뒤에 다시 시도하세요. false이면 먼저 내역에서 Request ID를 확인하세요
504model_timeout모델이 제시간에 응답하지 않았지만 결과가 나중에 나타날 수 있음내역에서 Request ID를 확인하기 전에는 요청을 다시 보내지 마세요

모델 응답 및 결과 확인 코드(502, 503, 504)는 이제 모델 또는 요청을 가리킵니다: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed 및 result_pending_check. 코드에서 error.code 를 이전 값과 비교한다면 표의 새 코드로 바꾸세요. 이전 코드와 새 코드의 대응 관계는 다음에서 안내합니다: 지원.

재시도 조건

  • 먼저 X-Should-Retry를 확인하세요: 자동 재시도하지 말아야 할 조건은 다음과 같습니다 — false, result_pending_check 또는 model_timeout — 첫 번째는 헤더 값이고, 나머지 두 개는 오류 유형입니다. 대시보드 내역에서 Request ID로 결과와 차감액을 확인하세요.
  • X-Should-Retry: true를 받은 경우 재시도가 안전합니다: 다음 값만큼 기다리세요: Retry-After 초. 5xx는 코드만으로 판단하면 안 됩니다. 결과가 이미 나왔을 수 있습니다. 대시보드 내역을 확인하거나 Request ID와 함께 지원팀에 문의하세요. 이미지, 영상, 음악 및 긴 에이전트 단계에서는 특히 중요합니다.
  • 재시도해도 해결되지 않는 코드: 400, 401, 402, 403, 404. 요청, 키 또는 잔액부터 수정하세요.

제한

호출 빈도와 동시 요청 수는 키별이 아니라 계정 전체에 적용됩니다. 초과하면 429 rate_limit_exceeded 헤더: Retry-After: 10. 모델 자체가 과부하 상태이면 503 model_overloaded 및 Retry-After: 30. 더 많은 부하가 필요하다면 다음으로 문의하세요: 지원팀.

지출 한도는 키에 설정합니다. 전체 한도 — 402 api_key_quota_exhausted, 5시간·1일·7일 시간 창 — 429 usage_limit_reached. 자세한 내용: 키와 API 주소.

NVIDIA 모델: 대기열

모델 목록은 잔액이 없어도 조회할 수 있습니다. 생성에는 예약 금액을 충당할 잔액이 필요합니다. NVIDIA 모델(Nemotron 등)은 공용 대기열을 사용합니다. 부하가 높으면 응답이 늦거나 Retry-After 헤더가 포함된 «모델 일시 과부하» 오류가 반환될 수 있습니다. 지정된 시간 뒤에 다시 시도하세요. 가격은 카탈로그에서 확인하며 차감은 다른 모델과 동일합니다.

크기 한도는 모델이 정합니다. 입력할 수 있는 토큰 수인 컨텍스트와 최대 응답 길이입니다. 확인 위치: 카탈로그.

내역과 비용

내역과 비용 · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN

JWT ≠ sk-… · 로그인과 세션

궁금한 점이 남았나요? Request ID와 설명을 보내 주시면 해결을 도와드리겠습니다.지원팀에 문의