AI 에이전트용: 단계별 설정 안내 — /docs/agents.md, 문서 인덱스 — /llms.txt.

에러 및 제한

게이트웨이의 요청 제한, 타임아웃, 오류 코드. 각 응답이 언제 발생하는지, 그리고 어떻게 대처해야 하는지(요청 재시도 또는 수정)를 설명합니다.

제한#

수치는 응답 GET /v1/capabilities의 limits 필드에서 가져옵니다. 항상 최신 값이 기재되어 있습니다.

제한값초과 시
키당 분당 요청 수120, 첫 요청부터 60초 윈도우429 rate_limit_exceeded와 헤더 Retry-After. 게이트웨이의 5xx 거부는 할당량을 소모하지 않습니다
계정의 동시 요청 수제한됨초과분은 큐에서 대기. 기다리지 못하면 429 queue_timeout
요청 본문 크기16 MiB413
출력 길이모델별 — 아래 표 참조모델 상한을 초과하면 에러 없이 상한까지 잘림
하위 키관리 키당 최대 50개, 각각 분당 120 요청상한 상향은 지원팀을 통해

모델별 출력 길이#

max_tokens를 지정하지 않으면 게이트웨이가 기본값을 적용합니다. 비스트리밍에서는 타임아웃 내에 응답하도록 더 짧게, 스트리밍에서는 모델 상한으로. max_completion_tokens는 동일한 필드입니다.

model상한비스트리밍스트리밍
MiniMaxAI/MiniMax-M2.7819215008192
deepseek-ai/DeepSeek-V4-Flash-073132768150032768
zai-org/GLM-5.3-Flash819230008192

타임아웃#

단계값발생 내용
큐 대기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 오류 형식 섹션을 참조하세요.

JSON
{
  "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_supportedOpenAI 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_foundGET /v1/models/{model}: 모델이 카탈로그에 없거나 일시적으로 숨겨져 있음GET /v1/models에서 id를 가져오세요
404 invalid_request_error not_found compact_not_supportedOpenAI 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_limitedGonka 네트워크에서 모델이 과부하 상태입니다Retry-After 후에 재시도하거나 다른 모델을 사용하세요 — 모델
429 rate_limit_exceeded queue_timeout queue_full네트워크의 모든 슬롯이 사용 중: 대기열이 가득 찼거나 대기 시간이 초과됨Retry-After 후에 재시도하세요
500 server_error게이트웨이 내부 오류나중에 재시도하세요. 반복되면 x-request-id를 첨부하여 지원팀에 문의하세요
501 not_implementedPOST /v1/embeddings: 네트워크에 임베딩 모델이 없음다른 임베딩 서비스를 이용하세요
502 api_error upstream_unauthorized네트워크 프로바이더가 게이트웨이 자격 증명을 거부함 — 고객님의 키는 정상입니다1분 후에 재시도하세요
502 api_errorGonka 네트워크 오류. 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].
SSE
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.
SSE
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를 첨부하여 지원팀에 문의하세요.