API 오류

API 오류

이 페이지는 모든 Interactions API 오류 코드에 대한 참조를 제공하고, 오류 응답 형식을 설명하며, API가 다양한 요청 유형에 대해 오류를 전달하는 방식을 설명해요.

출처: 원문

본문

표준 API 오류 코드

이 일반 요청 수준 오류 코드는 표준 HTTP 상태 코드에 해당해요. 애플리케이션 로직에서 code 필드를 사용해 프로그래밍 방식으로 오류를 처리하세요.

코드 HTTP 상태 설명 권장 조치
invalid_request 400 Bad Request 요청 페이로드가 잘못되었거나 유효하지 않은 매개변수가 포함되어 있어요. API 참조에 대해 요청 구문과 매개변수를 확인하세요.
failed_precondition 400 Bad Request 선행 조건이 충족되지 않아(예: 결제 비활성화) 요청을 처리할 수 없어요. 프로젝트 결제 상태 또는 계정 사전 요건을 확인하세요.
out_of_range 416 Requested Range Not Satisfiable 요청 매개변수가 유효 범위를 벗어났어요. 매개변수 값과 한도를 확인하세요.
parameter_unknown 400 Bad Request 요청에 알 수 없는 매개변수가 포함되어 있어요. 인식되지 않은 매개변수를 제거하고 다시 시도하세요.
authentication 401 Unauthorized API 키가 없거나, 유효하지 않거나, 만료되었어요. API 키를 확인하세요.
payment_required 402 Payment Required 선불 크레딧 잔액이 소진되었어요. 결제 계정에 크레딧을 추가하거나 자동 충전을 켜세요. 재시도하지 마세요: 크레딧이 추가되기 전까지 요청은 성공하지 않아요.
permission_denied 403 Forbidden API 키에 이 리소스에 대한 권한이 없어요. API 키 권한과 프로젝트 접근을 확인하세요.
not_found 404 Not Found 요청한 리소스를 찾을 수 없어요. 리소스 경로와 매개변수를 확인하세요.
model_not_found 404 Not Found 지정한 모델을 찾을 수 없어요. 모델 이름을 확인하거나 다른 모델로 대체하세요.
already_exists 409 Conflict 생성하려는 엔터티가 이미 존재해요. 다시 생성하기 전에 리소스가 이미 존재하는지 확인하세요.
aborted 409 Conflict 충돌 또는 동시성 검사 실패로 작업이 중단되었어요. 더 높은 애플리케이션 수준에서 요청을 재시도하세요.
rate_limit_exceeded 429 Too Many Requests 분당 또는 초당 요청·토큰 한도를 초과했어요. 지수 백오프로 기다렸다가 재시도하세요.
quota_exceeded 429 Too Many Requests 일일 할당량을 초과했어요. 할당량이 재설정될 때까지 기다리거나 할당량 증가를 요청하세요.
too_many_requests 429 Too Many Requests 짧은 시간에 너무 많은 요청을 했어요. 지수 백오프로 기다렸다가 재시도하세요.
cancelled 499 Client Closed Request 클라이언트가 요청을 완료하기 전에 취소했어요. 조치가 필요 없어요. 대개 클라이언트가 연결을 끊었다는 뜻이에요.
api_error 500 Internal Server Error 서버에서 예기치 않은 오류가 발생했어요. 요청을 재시도하세요. 지속되면 지원팀에 문의하세요.
unimplemented 501 Not Implemented 작업 또는 기능이 구현되지 않았거나 지원되지 않아요. API 기능을 확인하거나 지원되는 기능으로 전환하세요.
service_unavailable 503 Service Unavailable 서비스가 일시적으로 과부하되거나 다운되었어요. 지수 백오프로 기다렸다가 재시도하세요.
deadline_exceeded 504 Gateway Timeout 요청이 마감 시간 내에 완료되지 않았어요. 서버 기본값을 사용하도록 클라이언트 마감 시간 설정을 제거하거나 늘리세요.

생성 차단 코드

이 오류 코드는 정책, 안전 또는 콘텐츠 제한이 모델 출력을 차단했음을 나타내요. 이 코드 중 하나를 받으면 입력을 수정하고 다시 시도하세요.

코드 설명
safety 안전 위반(유해 콘텐츠)으로 요청이 차단되었어요.
recitation 저작권 또는 낭송 제한으로 요청이 차단되었어요.
language 지원되지 않는 언어로 요청이 차단되었어요.
prohibited_content 금지 콘텐츠 지침으로 요청이 차단되었어요.
spii 민감한 개인 식별 정보(Sensitive Personally Identifiable Information) 제한으로 요청이 차단되었어요.
blocklist 블록리스트의 금지 용어로 요청이 차단되었어요.
image_safety 안전 위반으로 이미지 생성이 차단되었어요.
image_prohibited_content 금지 콘텐츠 지침으로 이미지 생성이 차단되었어요.
image_recitation 저작권 또는 낭송 제한으로 이미지 생성이 차단되었어요.
image_other 명시되지 않은 이유로 이미지 생성이 차단되었어요.
content_blocked 명시되지 않은 정책 이유로 요청이 차단되었어요.

생성 오류 코드

이 오류 코드는 모델의 생성 출력에 구조적 문제가 있음을 나타내요(예: 잘못된 함수 호출 또는 선언되지 않은 도구 호출).

코드 설명
malformed_function_call 모델이 파싱할 수 없는 함수 호출을 생성했어요.
malformed_tool_call 모델이 파싱할 수 없는 도구 호출을 생성했어요.
unexpected_tool_call 모델이 요청에 선언되지 않은 도구를 호출했어요.
no_image 모델이 이미지를 생성하지 못했어요.
too_many_tool_calls 모델이 허용된 것보다 더 많은 도구 호출을 생성했어요.
missing_thought_signature 응답에 필수 thought 서명이 없어요.

오류 응답 형식

Interactions API의 모든 오류는 code와 message를 포함하는 error 객체를 반환해요. 예를 들어 지원되지 않는 도구 유형을 전달하면 다음과 같이 반환돼요.

{
  "error": {
    "code": "invalid_request",
    "message": "The value 'invalid_tool_type_xyz' is not supported for 'type' at 'tools[0]'. Supported values: 'function', 'code_execution', 'mcp_server', 'filesystem', 'google_maps', 'google_search', 'bash', 'computer_use', 'file_search', 'url_context'."
  }
}
필드 유형 설명
code string snake_case의 기계 판독 가능한 오류 코드
message string 무엇이 잘못되었는지에 대한 사람이 읽을 수 있는 설명

오류가 전달되는 방식

API는 표준 HTTP 요청을 하는지 스트리밍(SSE) 요청을 하는지에 따라 오류를 다르게 전달해요.

표준 HTTP 요청

표준(비스트리밍) 요청의 경우 API는 HTTP 응답 상태 코드(예: 400 Bad Request, 401 Unauthorized, 429 Too Many Requests)를 설정하고 JSON 응답 본문에 error 객체를 반환해요.

{
  "error": {
    "code": "invalid_request",
    "message": "The value 'invalid_tool_type_xyz' is not supported for 'type' at 'tools[0]'."
  }
}

스트리밍(SSE) 요청

스트리밍 요청(stream: true)의 경우 API는 event_type을 "error"로 설정하여 Server-Sent Events(SSE) 스트림을 통해 오류 이벤트를 보내요. error 필드는 동일한 code와 message 구조를 포함해요.

{
  "event_type": "error",
  "error": {
    "code": "not_found",
    "message": "Failed to get completed interaction: Result not found."
  }
}

전체 SSE 이벤트 스키마는 Interactions API 참조를 참조하세요.

다음 단계

더 알아보기 (Learn more)