AI 에이전트용: 단계별 설정 안내 — /docs/agents.md, 문서 인덱스 — /llms.txt.
에러 및 제한
게이트웨이의 요청 제한, 타임아웃, 오류 코드. 각 응답이 언제 발생하는지, 그리고 어떻게 대처해야 하는지(요청 재시도 또는 수정)를 설명합니다.
제한#
수치는 응답 GET /v1/capabilities의 limits 필드에서 가져옵니다. 항상 최신 값이 기재되어 있습니다.
| 제한 | 값 | 초과 시 |
|---|---|---|
| 키당 분당 요청 수 | 120, 첫 요청부터 60초 윈도우 | 429 rate_limit_exceeded와 헤더 Retry-After. 게이트웨이의 5xx 거부는 할당량을 소모하지 않습니다 |
| 계정의 동시 요청 수 | 제한됨 | 초과분은 큐에서 대기. 기다리지 못하면 429 queue_timeout |
| 요청 본문 크기 | 16 MiB | 413 |
| 출력 길이 | 모델별 — 아래 표 참조 | 모델 상한을 초과하면 에러 없이 상한까지 잘림 |
| 하위 키 | 관리 키당 최대 50개, 각각 분당 120 요청 | 상한 상향은 지원팀을 통해 |
모델별 출력 길이#
max_tokens를 지정하지 않으면 게이트웨이가 기본값을 적용합니다. 비스트리밍에서는 타임아웃 내에 응답하도록 더 짧게, 스트리밍에서는 모델 상한으로. max_completion_tokens는 동일한 필드입니다.
model | 상한 | 비스트리밍 | 스트리밍 |
|---|---|---|---|
MiniMaxAI/MiniMax-M2.7 | 8192 | 1500 | 8192 |
deepseek-ai/DeepSeek-V4-Flash-0731 | 32768 | 1500 | 32768 |
zai-org/GLM-5.3-Flash | 8192 | 3000 | 8192 |
타임아웃#
| 단계 | 값 | 발생 내용 |
|---|---|---|
| 큐 대기 | 45초 | Retry-After: 1 헤더가 있는 429 queue_timeout |
| 네트워크 응답 시작, 스트리밍 | 150초 | 504 upstream_timeout. 입력 토큰 추정치가 청구됩니다 |
| 네트워크 응답 시작, 비스트리밍 | 150초 | 504 upstream_timeout. 입력 토큰 추정치가 청구됩니다 |
| 답변 생성 | ≈300초 | 네트워크가 생성을 중단: 응답이 finish_reason: length와 함께 반환됩니다. 다음 요청으로 이어가세요 |
| 스트림 청크 간 일시 정지 | 30초 | 스트림이 닫힘: 청크 joingonka-stream-stalled의 finish_reason: stop |
| 스트림의 연결 유지 신호 | 15초 | 주석 : keep-alive — SSE 클라이언트는 이를 건너뜁니다 |
| 스트림 열기 | 30초 | 이 시점까지는 응답 코드로 거부가 반환되고, 이후에는 청크 joingonka-error로 반환됩니다 |
| 비스트리밍 조기 응답 | 90초 | 게이트웨이가 200를 반환하고 15초마다 공백을 보냅니다 — JSON은 유효하게 유지됩니다. 이후의 에러는 error 필드를 포함한 본문으로 반환되며, 상태는 200로 유지됩니다 |
타임아웃 시 청구 내용
네트워크가 수락한 요청은 취소할 수 없습니다. 504 upstream_timeout 발생 시 입력 토큰 추정치가 청구되고 출력 토큰은 청구되지 않습니다. 재시도는 새로운 청구입니다. 최종 usage 전에 중단된 스트림도 동일하게 청구됩니다. 긴 응답이 필요하면 stream: true을 사용하세요.
오류 코드#
오류 본문은 message, type, code, param 필드를 가진 error 객체입니다. 모든 오류에 모든 필드가 있는 것은 아닙니다. 상태 코드와 type을 기준으로 하고, code로 세부 사항을 확인하세요. message 텍스트는 변경될 수 있습니다. Anthropic 형식은 Anthropic 오류 형식 섹션을 참조하세요.
{
"error": {
"message": "Model is currently overloaded in the Gonka network",
"type": "rate_limit_exceeded",
"code": "upstream_rate_limited"
}
}| 응답 | 시점 | 대처 방법 |
|---|---|---|
400 invalid_request_error | 잘못된 요청 본문: messages 없음, 메시지가 객체가 아님, 본문이 JSON이 아님. 알 수 없는 모델의 경우 param과 함께 model 및 사용 가능한 모델 목록이 텍스트에 포함됨 | 오류 메시지에 따라 요청을 수정하세요 |
400 invalid_request_error empty_content_after_normalization | 정규화 후 메시지가 비어 있음 — 예를 들어 이미지만 포함된 경우 | 메시지에 텍스트를 추가하세요 |
400 invalid_request_error web_search_privacy_sanitization_not_supported | 하나의 요청에 web 및 privacy-sanitization 플러그인이 함께 있음 | 둘 중 하나만 남기세요 |
400 invalid_request_error previous_response_id_not_supported conversation_not_supported item_reference_not_supported background_not_supported hosted_tool_choice_not_supported | OpenAI Responses: 저장된 응답, 대화 또는 항목에 대한 참조, 백그라운드 모드, 내장 도구 요구 | 전체 기록을 input에 담아 보내세요 |
400 api_error | 네트워크가 매개변수를 거부 — 예를 들어 reasoning_effort 값이 네트워크 목록에 없는 경우 | 오류 메시지에 따라 값을 수정하세요 |
401 authentication_error | 키를 찾을 수 없거나, 취소되었거나, 알 수 없는 형식 | gate.joingonka.ai/keys 페이지에서 키를 확인하세요 |
402 insufficient_funds | 요청 추정치에 비해 잔액이 부족합니다. 잔액은 balance_ngonka에 있습니다 | 잔액을 충전하세요: gate.joingonka.ai/billing |
402 insufficient_funds | 사이트가 아닌 곳에서의 키 없는 요청 (is_demo: true) | API 키를 전달하세요 |
402 child_key_limit_exceeded | 키의 지출 한도 초과 — 일일, 월간 또는 누적. 잔여량은 daily_remaining, monthly_remaining, total_remaining에 있습니다 | gate.joingonka.ai/keys 페이지에서 키 한도를 높이거나 초기화를 기다리세요 |
403 forbidden | 모델 요청에 관리 키 gm- 사용. 계정 전용 라우트에 API 키 사용 | 요청에는 jg- 또는 gc- 키를 사용하세요. 계정 관리는 대시보드에서 하세요 |
404 invalid_request_error model_not_found | GET /v1/models/{model}: 모델이 카탈로그에 없거나 일시적으로 숨겨져 있음 | GET /v1/models에서 id를 가져오세요 |
404 invalid_request_error not_found compact_not_supported | OpenAI Responses: /v1/responses/{id} 및 기타 상태 주소, /v1/responses/compact | 기록을 직접 보관하세요. Codex CLI의 경우 자체 프로바이더 id를 설정하세요 |
404 invalid_request_error | 알 수 없는 경로 | 메서드, 경로 및 기본 주소를 확인하세요 |
413 invalid_request_error | 요청 본문이 한도를 초과함 | 요청을 줄이세요 |
415 invalid_request_error | 헤더에 따르면 본문이 JSON이 아님: Content-Type: application/json 필요 | Content-Type: application/json를 전송하세요 |
429 rate_limit_exceeded | 키당 분당 요청 수 초과. 본문에 limit, remaining, reset을 포함한 rate_limit이 있음 | Retry-After에 표시된 초만큼 기다리세요 |
429 rate_limit_exceeded upstream_rate_limited | Gonka 네트워크에서 모델이 과부하 상태입니다 | Retry-After 후에 재시도하거나 다른 모델을 사용하세요 — 모델 |
429 rate_limit_exceeded queue_timeout queue_full | 네트워크의 모든 슬롯이 사용 중: 대기열이 가득 찼거나 대기 시간이 초과됨 | Retry-After 후에 재시도하세요 |
500 server_error | 게이트웨이 내부 오류 | 나중에 재시도하세요. 반복되면 x-request-id를 첨부하여 지원팀에 문의하세요 |
501 not_implemented | POST /v1/embeddings: 네트워크에 임베딩 모델이 없음 | 다른 임베딩 서비스를 이용하세요 |
502 api_error upstream_unauthorized | 네트워크 프로바이더가 게이트웨이 자격 증명을 거부함 — 고객님의 키는 정상입니다 | 1분 후에 재시도하세요 |
502 api_error | Gonka 네트워크 오류. code는 네트워크가 전송한 경우 네트워크 측 정보입니다 | 간격을 두고 재시도하거나 다른 모델을 사용하세요 |
503 model_unavailable model_outage model_initializing model_unstable model_not_served | 네트워크 프로브 결과 모델을 현재 사용할 수 없음: 장애, 시작 중, 불안정 또는 아무도 서비스를 제공하지 않는 상태. 대기 없이 즉시 거부됨 | 다른 모델을 사용하세요 — 오류 메시지가 어떤 모델인지 알려줍니다. 목록은 모델 |
503 service_unavailable | 사용 가능한 노드가 없음 | 나중에 재시도하세요 |
504 timeout upstream_timeout | 네트워크가 요청을 수락했지만 제때 응답하지 않음. 입력 토큰 추정치가 청구되었습니다 | 긴 응답에는 stream: true을 사용하세요. 재시도는 새로운 청구입니다 |
열린 스트림 내 오류#
스트림이 열리기 전에는 비스트리밍과 동일하게 일반 응답 코드로 거부가 전달됩니다. 열린 후에는 상태가 이미 200이며 오류는 다음과 같이 전달됩니다:
- Chat Completions —
error필드를 가진joingonka-error청크, 이후[DONE]없이 연결이 끊어집니다. - 조기 응답 후 비스트리밍 — 상태
200및error필드를 가진 본문. - Anthropic Messages —
event: error이벤트, 이후 스트림이 닫힙니다. - OpenAI Responses —
response.failed이벤트, 원인은response.error.code에 있습니다. - Legacy Completions —
data: {"error": …}, 이후[DONE].
data: {"id":"joingonka-error","object":"chat.completion.chunk","model":"MiniMaxAI/MiniMax-M2.7","choices":[],"error":{"message":"Gonka network error","type":"api_error"}}Anthropic 오류 형식#
POST /v1/messages는 Anthropic 엔벨로프로 응답합니다:{"type": "error", "error": {"type", "message"}}.- 게이트웨이 거부는 위 표의
type을 유지합니다 (insufficient_funds,model_unavailable등). 이 엔벨로프에는code필드가 없으며 원인은 텍스트에 있습니다. - 요청 형식 오류 —
invalid_request_error: 메시지 또는max_tokens없음, 이름 없는 도구 호출, 알 수 없는 모델. - 알 수 없는 경로 —
not_found_error, 본문이 너무 큼 —request_too_large.
event: error
data: {"type":"error","error":{"type":"timeout","message":"Upstream timeout"}}재시도해야 하는 경우#
Retry-After에 표시된 대기 후:429- 지수 백오프 — 1, 2, 4초 이후:
500,502,503 service_unavailable,504 - 다른 모델로:
503 model_unavailable - 변경 없이 재시도하지 마세요 — 요청, 키 또는 잔액을 수정하세요:
400,401,402,403,404,413,415,501
504 이후 각 재시도는 입력 추정치의 새로운 청구입니다. 긴 응답에는 stream: true을 활성화하세요.
오류가 반복되면 응답 헤더의 x-request-id를 첨부하여 지원팀에 문의하세요.