Kılavuzlara dön
Sorun giderme·30 Ağustos 2026·6 dk okuma

Claude API'sinde 429 rate_limit_error hatası — anlamı ve çözümü

429 hatası "daha yavaş" demektir, "paranız bitti" değil. Fark önemlidir: birinin çözümü beklemek, diğerinin çözümü bakiye yüklemektir — ikisini karıştırmak sizi yanlış yerde saatlerce hata ayıklamaya götürür.

429 hatası "daha yavaş" demektir, "paranız bitti" değil. Fark önemlidir: birinin çözümü beklemek, diğerinin çözümü bakiye yüklemektir — ikisini karıştırmak sizi yanlış yerde saatlerce hata ayıklamaya götürür.

Hata

yanıt (HTTP 429)
{
  "type": "error",
  "error": { "type": "rate_limit_error",
             "message": "Number of requests has exceeded your rate limit" }
}

Nedenler ve çözümler özeti

NedenÇözüm
Hesabınızın dakika başına istek sınırının üzerindeHer şeyi bir kerede göndermek yerine istemci tarafında kuyruğa alın ve eşzamanlılığı sınırlayın.
Dakika başına token sınırının üzerindeUzun istemler, istek kotasından çok önce token kotasını tüketir. Bağlamı küçültün veya işi bölün.
Aynı anahtarı kullanan birden fazla işlemSınır işlem için değil, anahtar içindir. Paralel worker'lar aynı kotaya birlikte dahil olur.
Backoff olmadan yeniden denemeHemen yeniden denemek sizi sürekli olarak sınırın üzerinde tutar. Jitter içeren üstel backoff zorunludur.

Geldiğinde retry-after'a uyun

Yanıt retry-after başlığını içerdiğinde bu bir öneri değil, isteğin yeniden kabul edileceği tam süredir. Daha kısa beklemek başka bir 429'u garanti eder.

retry_after.py
import time
from openai import APIStatusError

try:
    resp = client.chat.completions.create(model=MODELO, messages=msgs)
except APIStatusError as e:
    if e.status_code == 429:
        espera = float(e.response.headers.get("retry-after", 5))
        time.sleep(espera)
        resp = client.chat.completions.create(model=MODELO, messages=msgs)
    else:
        raise

Kaynakta eşzamanlılığı sınırlayın

En yaygın neden toplam hacim değil, ani artıştır: aynı anda gönderilen yirmi istek, bir dakikaya yayılan ve sınırı aşmayan altmış isteğin aşmadığı sınırı aşabilir. Bir semaphore, yalnızca yeniden denemenin çözemediği sorunu çözer.

concorrencia.py
import asyncio

LIMITE = asyncio.Semaphore(4)   # no máximo 4 chamadas simultâneas

async def chamar(msgs):
    async with LIMITE:
        return await client.chat.completions.create(
            model=MODELO, messages=msgs)

Bunun sınır mı, bakiye mi olduğunu doğrulayın

429 hiçbir zaman kredi eksikliği anlamına gelmez — bu 402'dir. Günlüğünüz ikisini karıştırıyorsa araştırmadan önce durum koduna göre ayırın: 429'un çözümü zamanlama, 402'nin çözümü bakiye yüklemektir. 402'yi yeniden denemek her zaman başarısız olur.

Kunavo üzerinden çağrı yapıyorsanız

Kunavo'da sınırlar anahtar başınadır ve bakiye ayrı bir ön ödemeli cüzdandır; bu nedenle iki durum farklı durum kodlarıyla görünür: hız sınırı için 429 ve bakiye çağrıyı karşılamadığında 402 — biri asla diğerinin kılığına girmez. Reddedilen istekler ücretlendirilmez. Her çağrının bakiyenizden ne kadar tüketeceğini belirleyen token ücretleri Claude API fiyatlandırma kılavuzumuzda.

Sık sorulan sorular

429, kredilerimin tükendiği anlamına mı gelir?

Hayır. Bakiye yetersizliği 402'dir. 429 hızla ilgilidir: kısa sürede çok fazla istek veya token gönderdiniz; beklemek sorunu çözer.

Ne kadar beklemeliyim?

retry-after başlığı gelirse tam olarak o süre kadar. Başlık yoksa 1–2 saniyeden başlayarak jitter içeren üstel geri çekilme uygulayın; 30–60 saniyelik bir üst sınıra kadar çıkabilirsiniz.

Limiti artırmak sorunu çözer mi?

Hacim gerçekten yüksekse yardımcı olur; ancak 429'ların çoğu kısa süreli ani yoğunluklardan kaynaklanır. Eşzamanlılığı sınırlamak genellikle herhangi bir limiti değiştirmeden sorunu çözer.

İlgili kılavuzlar

Hata anlamlarına ilişkin daha fazla bilgi hata referansı bölümünde; anahtar almak kayıt ve kimlik doğrulama kılavuzu üzerinden bir dakika sürer.