429 오류: gemini-3.6-flash 호출이 실패할 때 대처법

429는 속도 제한에 걸렸다는 뜻입니다. 일정 시간 내 요청 수나 토큰 수가 현재 요금제 할당량을 초과했습니다.

429 Too Many Requests 는 오류가 아니라 레이트 리밋 응답입니다. 요청 자체는 유효하지만 현재 요금제가 허용하는 요청 속도나 동시 실행 수를 초과한 것입니다. 응답 헤더가 알려주는 시간만큼 기다렸다가 재시도하면 복구되며, 요청 본문을 바꿀 필요는 없습니다.

gemini-3.6-flash 는 Google 가 제공하며, 이 페이지의 원인 분석·처리 방법·실측 데이터는 모두 게이트웨이 계층에서 이 모델의 실제 운영 상황을 바탕으로 정리했습니다.

이 게이트웨이에서 가장 흔한 원인은 「동시 요청이 너무 많음」입니다. 우선 처리할 동작은 「동시 요청을 제한하고 지수 백오프로 재시도」입니다.

주요 원인

  • 동시 요청이 너무 많음
  • 현재 요금제 쿼터 소진
  • 대기 없이 즉시 재시도

해결 방법

  • 동시 요청을 제한하고 지수 백오프로 재시도
  • 쿼터가 큰 요금제로 변경
  • 반복 요청 캐싱

지수 백오프 재시도 예시

아래 코드는 gemini-3.6-flash가 429를 반환할 때 최대 5회까지 재시도합니다. 대기 시간은 점점 길어지고 무작위 지터가 더해져 동시 재시도를 막습니다. base URL과 API 키는 환경 변수에서 읽고, 코드에 하드코딩하지 마세요.

import os, time, random
import requests

BASE  = os.getenv("OPENAI_BASE_URL")   # e.g. https://<your-gateway>/v1
KEY   = os.getenv("OPENAI_API_KEY")
MODEL = 'gemini-3.6-flash'


def chat(messages, retries=5):
    """Retry with exponential backoff + jitter."""
    for i in range(retries):
        try:
            r = requests.post(
                BASE + "/chat/completions",
                headers={"Authorization": "Bearer " + KEY},
                json={"model": MODEL, "messages": messages, "stream": True},
                timeout=60,
            )
            if r.status_code == 429 or r.status_code >= 500:
                time.sleep(min(2 ** i + random.uniform(0, 1), 30))
                continue
            r.raise_for_status()
            return r.json()
        except requests.exceptions.Timeout:
            time.sleep(min(2 ** i + random.uniform(0, 1), 30))
    raise RuntimeError("gave up after " + str(retries) + " retries")


print(chat([{"role": "user", "content": "hello"}]))

이 모델의 핵심 데이터

API 엔드포인트https://api.airai.cc/v1
OpenAI 호환OpenAI-compatible
제공사Google
컨텍스트1M
지원 기능Reasoning, Tools, Files, Vision, Audio
API 형식openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
과금 공식p * 0.75 + cr * 0.075 + ai * 0.75 + c * 3.75

자주 묻는 질문

429 은 프록시나 네트워크 중간 계층 때문에 발생할 수도 있나요?

요청 ID와 원본 응답 본문을 남겨두세요. 그렇지 않으면 추적할 수 없습니다. 이 모델은 Google 가 제공하며, 업스트림 상태는 공급처 공지를 따릅니다. 실패할 때마다 요청 ID를 기록하세요. 상태 코드보다 훨씬 쓸모 있습니다. 먼저 테스트 환경에서 같은 요청 본문으로 한 번 재현해 보세요.

결과 캐싱이 429 를 줄이나요?

여기서 진짜 변수는 동시성과 타임아웃이며, 모델 자체가 아닙니다. 먼저 동시성을 낮추세요. 처리량 문제의 대부분은 그것으로 사라집니다. 이 모델의 컨텍스트 윈도우는 1M, 벤더는 Google 입니다. 긴 출력에서는 타임아웃을 60초 이상으로 올리세요. 캐시 계층을 두면 반복 요청이 모두 모델에 도달하지 않습니다.

더 작은 모델로 바꾸면 429 이 줄어드나요?

아키텍처 수준에서 폴백을 두는 편이 오류를 하나씩 고치는 것보다 안정적입니다. Google 의 이 모델에는 게이트웨이가 전환할 수 있는 upstream 노드가 여러 개 있습니다. 모델 이름을 설정값으로 두면 업스트림을 바꿀 때 코드를 고칠 필요가 없습니다.

429 은 gemini-3.6-flash 의 과금 방식과 관련이 있나요?

청구되지 않습니다. 실제로 생성된 출력만 사용량에 반영됩니다. 이미 생성된 부분만 과금되고, 실패한 부분은 과금되지 않습니다. p * 0.75 + cr * 0.075 + ai * 0.75 + c * 3.75 과금에서는 긴 출력 비용이 대부분 출력 토큰에서 발생합니다. 과금 방식이 p * 0.75 + cr * 0.075 + ai * 0.75 + c * 3.75 인 경우, 실패한 요청은 사용량에 포함되지 않습니다. 먼저 콘솔에서 잔액과 속도 제한을 확인한 뒤 코드를 살펴보세요.

이 모델의 다른 오류

같은 오류가 나는 다른 모델

데이터 업데이트: 2026-10-12 02:10

기술 지원온라인 상담
맨 위로