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

Claude Code "API Error: bad_response_status_code" — alttaki durum kodunu okuma

Bu hata çağrının başarısız olduğunu söyler ve neden hakkında neredeyse hiçbir bilgi vermez. Yararlı bilgiler — durum kodu ve sağlayıcının mesajı — tek bir hata ayıklama bayrağı kadar uzaktadır; her durum farklı bir düzeltmeye işaret eder.

Son inceleme tarihi: .

Bu hata çağrının başarısız olduğunu söyler ve neden hakkında neredeyse hiçbir bilgi vermez. Yararlı bilgiler — durum kodu ve sağlayıcının mesajı — tek bir hata ayıklama bayrağı kadar uzaktadır; her durum farklı bir düzeltmeye işaret eder.

Hata

terminal
API Error: bad_response_status_code

(no status, no provider message — the wrapper hides both)

Nedenler ve çözümler özeti

NedenÇözüm
Altta 401 / 403Özel bir base URL ile kimlik bilgisi veya başlık uyuşmazlığı. Hangi kimlik doğrulama değişkeninin ayarlandığını kontrol edin.
Altta 404Ya model kimliği bu ana bilgisayar tarafından bilinmiyordur ya da base URL'de fazladan bir yol bölümü vardır.
Altta 402Ağ geçidinin cüzdanı boş. Bakiye yükleyin; istemci yapılandırmasında yanlış olan hiçbir şey yok.
Altta 429 / 529Hız sınırlaması uygulandı veya üst taraf aşırı yüklendi. Yeniden yapılandırmak yerine geri çekilmeli yeniden deneyin.
200 ile gelen JSON olmayan gövdeCaptive portal, kurumsal proxy veya hata sayfası. Durum iyi olabilir, ancak gövde yine de kullanılamaz.

Sarmalayıcıyı gerçek bir hataya dönüştürün

Claude Code'un hata ayıklama çıktısı isteği ve üst taraftan gelen yanıtı yazdırır. Bir başarısız çağrıyı hata ayıklama açıkken çalıştırın ve durum satırını okuyun — bundan sonraki her şey bu satırın ne söylediğine bağlıdır.

debug.sh
claude --debug 2>&1 | tee claude-debug.log

grep -iE 'status|http/|error' claude-debug.log | head -20

Aynı çağrıyı curl ile yeniden üretin

Base URL'yi ve kimlik bilgisini araçtan çıkarıp isteği doğrudan gönderin. Bu, "ana bilgisayar bizi reddediyor" ile "istemci hatalı" durumlarını tek adımda ayırır — ham gövde de genellikle sorunu sarmalayıcının attığı, sade bir dille adlandırır.

reproduce.sh
curl -i "$ANTHROPIC_BASE_URL/v1/messages" \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":16,
       "messages":[{"role":"user","content":"ping"}]}'

Base URL'de sondaki yolun bulunmadığını kontrol edin

Claude Code kendi `/v1/...` yolunu ekler. Zaten `/v1` ile biten bir base URL, `/v1/v1/messages` oluşturur; herhangi bir ana bilgisayar buna 404 ile yanıt verir — yine bad_response_status_code olarak sarılır. Yalnızca origin'i ayarlayın.

base-url.sh
# Wrong — doubles the version segment
export ANTHROPIC_BASE_URL="https://api.kunavo.com/v1"

# Right — origin only
export ANTHROPIC_BASE_URL="https://api.kunavo.com"

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

Kunavo'ya karşı hemen tanınması gereken iki durum 402 ve 401'dir: 402, cüzdanın isteği karşılayamadığı — bunun yapılandırmayla değil bakiyeyle ilgili olduğu — anlamına gelir; 401 ise Kunavo'nun kullanılabilir bir sk-kn- anahtarı almadığı anlamına gelir. Anahtarı hem Authorization: Bearer hem de x-api-key üzerinden okur; bu nedenle Claude Code'un gerçekte ne gönderdiğini kontrol edin: ANTHROPIC_API_KEY içindeki bir anahtar etkileşimli oturumda bir defalık onay gerektirir ve reddedildiğinde yok sayılırken, ANTHROPIC_AUTH_TOKEN hemen kullanılır. Her iki durum da nedeni belirten bir JSON gövdesiyle döner; bu nedenle hata ayıklama günlüğü yalnızca ipucu değil, kesin kanıttır. Başarısız istekler ücretlendirilmez. Hangi değişkenin ayarlanacağı ve nedeni şu bölümde açıklanır: kimlik doğrulama değişkeni kılavuzu.

Sık sorulan sorular

Bu hata hiç Claude Code'un kendi hatası olabilir mi?

Nadiren. Bu, taşıma katmanı sarmalayıcısıdır: bir şey yanıt vermiştir ve yanıt başarı değildir. curl ile yeniden üretmek durumu kesinleştirir — curl de başarısız oluyorsa sorun istemcide değildir.

Resmî API ile çalışıyor ama ağ geçidimle çalışmıyor.

O halde fark araçta değil, kimlik bilgisinde veya base URL'dedir. Ağ geçidinin beklediği kimlik doğrulama başlığını ve base URL'nizin zaten /v1 içerip içermediğini kontrol edin.

Otomatik olarak yeniden denemeli miyim?

Yalnızca durumu öğrendikten sonra. 401 veya 404'ü yeniden denemek anlamsızdır; 429 veya 529'u geri çekilme ile yeniden denemek doğrudur.

İ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.