이 페이지에서는 모든 Interactions API 오류 코드에 대한 참조를 제공하고, 오류 응답 형식을 설명하며, API가 다양한 요청 유형에 대해 오류를 전달하는 방법을 설명합니다.
표준 API 오류 코드
이러한 일반 요청 수준 오류 코드는 표준 HTTP 상태 코드에 해당합니다.
애플리케이션 로직의 code 필드를 사용하여 프로그래매틱 방식으로 오류를 처리합니다.
| 코드 | HTTP 상태 | 설명 | 권장 조치 |
|---|---|---|---|
invalid_request |
400 잘못된 요청 | 요청 페이로드의 형식이 잘못되었거나 잘못된 매개변수가 포함되어 있습니다. | API 참조를 기준으로 요청 구문과 매개변수를 확인합니다. |
failed_precondition |
400 잘못된 요청 | 기본 요건이 충족되지 않아 요청을 처리할 수 없습니다 (예: 결제가 사용 중지됨). | 프로젝트 결제 상태 또는 계정 필수 요건을 확인합니다. |
out_of_range |
416 처리할 수 없는 요청 범위 | 요청 매개변수가 유효한 범위를 벗어납니다. | 매개변수 값과 한도를 확인합니다. |
parameter_unknown |
400 잘못된 요청 | 요청에 알 수 없는 매개변수가 포함되어 있습니다. | 인식할 수 없는 매개변수를 삭제하고 다시 시도하세요. |
authentication |
401 승인되지 않음 | API 키가 누락되었거나 잘못되었거나 만료되었습니다. | API 키를 확인합니다. |
payment_required |
402 결제 필요 | 선불 크레딧 잔액이 소진되었습니다. | 결제 계정에 크레딧을 추가하거나 자동 충전을 사용 설정합니다. 재시도하지 마세요. 크레딧이 추가될 때까지 요청이 성공하지 않습니다. |
permission_denied |
403 금지됨 | API 키에 이 리소스에 대한 권한이 없습니다. | API 키 권한 및 프로젝트 액세스 권한을 확인합니다. |
not_found |
404 Not Found | 요청한 리소스를 찾을 수 없습니다. | 리소스 경로와 파라미터를 확인합니다. |
model_not_found |
404 Not Found | 지정된 모델을 찾을 수 없습니다. | 모델 이름을 확인하거나 다른 모델로 대체합니다. |
already_exists |
409 충돌 | 만들려고 시도한 항목이 이미 존재합니다. | 다시 만들기 전에 리소스가 이미 있는지 확인합니다. |
aborted |
409 충돌 | 충돌 또는 동시 실행 확인 실패로 인해 작업이 취소되었습니다. | 더 높은 애플리케이션 수준에서 요청을 다시 시도하세요. |
rate_limit_exceeded |
429 너무 많은 요청 | 분당 또는 초당 요청 또는 토큰 한도를 초과했습니다. | 기다렸다가 지수 백오프로 다시 시도합니다. |
quota_exceeded |
429 너무 많은 요청 | 일일 할당량을 초과했습니다. | 할당량이 재설정될 때까지 기다리거나 할당량 상향을 요청하세요. |
too_many_requests |
429 너무 많은 요청 | 짧은 시간 동안 너무 많은 요청을 했습니다. | 기다렸다가 지수 백오프로 다시 시도합니다. |
cancelled |
499 클라이언트에서 닫은 요청 | 클라이언트가 요청이 완료되기 전에 취소했습니다. | 별도의 조치를 취하지 않아도 됩니다. 이는 일반적으로 클라이언트의 연결이 끊어졌음을 의미합니다. |
api_error |
500 내부 서버 오류 | 서버에서 예기치 않은 오류가 발생했습니다. | 요청을 다시 시도하세요. 문제가 지속되면 지원팀에 문의하세요. |
unimplemented |
501 구현되지 않음 | 작업 또는 기능이 구현되지 않았거나 지원되지 않습니다. | API 기능을 확인하거나 지원되는 기능으로 전환합니다. |
service_unavailable |
503 서비스를 사용할 수 없음 | 서비스가 일시적으로 과부하되거나 다운되었습니다. | 기다렸다가 지수 백오프로 다시 시도합니다. |
deadline_exceeded |
504 게이트웨이 시간 초과 | 요청이 기한 내에 완료되지 않았습니다. | 서버 기본값을 사용하려면 클라이언트 기한 설정을 삭제하거나 늘리세요. |
생성 차단 코드
이 오류 코드는 정책, 안전 또는 콘텐츠 제한으로 인해 모델의 출력이 차단되었음을 나타냅니다. 이러한 코드가 표시되면 입력을 수정하고 다시 시도하세요.
| 코드 | 설명 |
|---|---|
safety |
안전 위반 (유해한 콘텐츠)으로 인해 요청이 차단되었습니다. |
recitation |
저작권 또는 낭독 제한으로 인해 요청이 차단되었습니다. |
language |
지원되지 않는 언어로 인해 요청이 차단되었습니다. |
prohibited_content |
금지 콘텐츠 가이드라인에 따라 요청이 차단되었습니다. |
spii |
민감한 개인 식별 정보 제한으로 인해 요청이 차단되었습니다. |
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 |
대답에 필수 사고 서명이 누락되었습니다. |
오류 응답 형식
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 |
문자열 | snake_case의 머신이 읽을 수 있는 오류 코드입니다. |
message |
문자열 | 오류 발생 원인에 대한 인간이 읽을 수 있는 설명입니다. |
오류가 전송되는 방식
표준 HTTP 요청을 하는지 스트리밍 (SSE) 요청을 하는지에 따라 API에서 오류를 다르게 전달합니다.
표준 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"로 설정된 서버 전송 이벤트 (SSE) 스트림을 통해 오류 이벤트를 전송합니다. error 필드에는 동일한 code 및 message 구조가 포함됩니다.
{
"event_type": "error",
"error": {
"code": "not_found",
"message": "Failed to get completed interaction: Result not found."
}
}
전체 SSE 이벤트 스키마는 Interactions API 참조를 참고하세요.