Claude Code "Request timed out": API_TIMEOUT_MS ve proxy çözümleri

Wokey Team · 2026-09-24

Kısa cevap: Request timed out, Claude Code'un süre sınırı dolmadan API'den yanıt alamadığı anlamına gelir; bu sınır varsayılan olarak 10 dakikadır (API_TIMEOUT_MS=600000). Bir gateway arkasında olağan neden yavaş bir model değildir. Çoğu zaman arada bir şey streaming yanıtını bekletir veya uzun süre sessiz kalan bağlantıları keser. Bu yerel bir proxy, kurumsal bir ağ veya gateway'in kendisi olabilir. Önce curl ile akışın parça parça geldiğini kontrol edin, sonra zaman aşımını yükseltip yükseltmeyeceğinize karar verin.

Hangisini görüyorsunuz

Mesaj Anlamı
Spinner altında Waiting for API response · will retry in … · check your network 20 saniyedir veri yok. Claude Code hâlâ bekliyor; bu henüz bir hata değil
Retrying in Ns · attempt x/y Otomatik yeniden denemeler sürüyor; varsayılan olarak en çok 10
Request timed out API_TIMEOUT_MS süresi içinde yanıt gelmedi
API Error: No response from API (waited …, then … on the retry) İki deneme, yanıtın ilk baytı gelmeden geçti
Wokey JSON gövdeli HTTP 504 Wokey upstream'i beklerken zaman aşımına uğradı
HTTP 408 İstek gövdesi çok yavaş yüklendi ve gateway onu beklemeyi bıraktı

İlk dördü Claude Code'un kendisinden, son ikisi sunucudan gelir.

Wokey'nin zaman aşımı hataları

Wokey'nin zaman aşımı hatalarının tümü standart hata biçiminde 504'tür. code, isteğin nerede takıldığını söyler:

code Anlamı
upstream_gateway_timeout Upstream'in kendi gateway'i herhangi bir çıktı üretmeden zaman aşımına uğradı
official_exit_first_byte_timeout Upstream, diğer rotalarda yeniden denemeye harcanan süre dahil, yanıt vermeye hiç başlamadı
provider_timeout Upstream bağlantısı sonuç alınmadan koptu veya zaman aşımına uğradı

Örneğin:

{"error":{"code":"upstream_gateway_timeout","message":"Upstream gateway timed out before producing a response.","type":"invalid_request_error"}}

Zaman aşımı, yanıtın streaming'i başladıktan sonra oluşursa HTTP 504 olarak değil, akış içinde bir error olayı olarak gelir.

Uzun süre çıktı olmadığında, örneğin model uzun uzun düşünürken, Wokey bağlantıyı canlı tutmak için akışa düzenli aralıklarla bir SSE yorumu yazar:

: wokey-transport-keepalive-v1

İstemciler yorum satırlarını yok sayar. curl ile test ederken bunu görürseniz bağlantı canlıdır ve model hâlâ çalışıyordur.

Sorun giderme adımları

1. curl ile akışın parça parça geldiğini kontrol edin.

curl -N https://api.wokey.ai/v1/messages \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":300,"stream":true,"messages":[{"role":"user","content":"Count from 1 to 60"}]}'

-N, curl'ün kendi arabelleğe almasını kapatır.

  • event: ve data: satırları geldikçe akıyorsa: yolun tamamı sorunsuzdur.
  • Uzun bir beklemeden sonra her şey bir anda görünüyorsa: arada bir şey yanıtı arabelleğe alıyordur ve Claude Code bu yolda zaman aşımına yatkındır.

2. Yerel proxy'nizi kontrol edin. Claude Code HTTPS_PROXY değerine ve sistem proxy ayarlarına uyar. TUN modu, kural tabanlı proxy'ler ve kurumsal gateway'ler streaming yanıtlarını arabelleğe alabilir veya boşta kalan bağlantıları kesebilir. Ağınız api.wokey.ai adresine doğrudan ulaşabiliyorsa bu alan adını proxy'nin dışında tutup yeniden deneyin. Proxy kullanmak zorundaysanız farklı bir node ile karşılaştırın.

3. Zaman aşımını yükseltin. Yol sorunsuz çıktıysa ve istekler gerçekten uzunsa sınırı ~/.claude/settings.json dosyasındaki env bloğunda yükseltin:

{
  "env": {
    "API_TIMEOUT_MS": "1200000"
  }
}
  • API_TIMEOUT_MS, istek başına milisaniye cinsinden zaman aşımıdır. Varsayılan 600000'dir (10 dakika).
  • Ağınızdaki bir proxy yanıtları tamamlanana kadar bekletiyorsa Claude Code'un hata mesajı CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS değerini de yükseltmeyi önerir.
  • Yarıda takılan bir akışın algılanması CLAUDE_STREAM_IDLE_TIMEOUT_MS ile denetlenir. 5 dakikanın altındaki değerler 5 dakikaya yükseltilir; üst sınır 30 dakikadır.

4. Bağlamı küçültün. Daha büyük bir bağlam daha yavaş yüklenir ve ilk token'ı geciktirir. Oturumu özetlemek için /compact komutunu çalıştırın veya yeni bir oturum başlatın.

5. 408 alırsanız. 408, istek gövdesinin yükleme sırasında gelmeyi bıraktığı ve gateway'in beklemekten vazgeçtiği anlamına gelir. Neredeyse yalnızca kararsız ağlardaki çok büyük bağlamlarda görülür. Düz bir yeniden deneme genellikle başarılı olur. Sürerse 2. adımdaki gibi proxy'nizi kontrol edin, ardından isteği /compact ile küçültün.

Codex'te zaman aşımları

Codex'in akış boşta kalma zaman aşımı varsayılan olarak 300000 ms'dir (5 dakika). Devreye girdiğinde idle timeout waiting for SSE veya stream disconnected before completion görürsünüz; otomatik yeniden denemelerde ise Reconnecting... n/max yazar. Bu ayarlar provider tablosuna yazılır:

[model_providers.wokey]
name = "Wokey"
base_url = "https://api.wokey.ai"
env_key = "WOKEY_API_KEY"
wire_api = "responses"
stream_idle_timeout_ms = 600000
stream_max_retries = 10

stream_max_retries varsayılanı 5, request_max_retries varsayılanı 4'tür; ikisinin de üst sınırı 100'dür. Kurulumun tamamı için Codex config.toml rehberine bakın.

Sık sorulan sorular

Claude Code'un varsayılan zaman aşımı nedir?

İstek başına on dakikadır ve API_TIMEOUT_MS ile belirlenir (varsayılan 600000). ~/.claude/settings.json dosyasındaki env bloğunda yükseltin, örneğin "API_TIMEOUT_MS": "1200000".

Sorunun ağda mı modelde mi olduğunu nasıl anlarım?

curl -N ile "stream":true içeren bir istek gönderin. data: satırları tek tek geliyorsa yol sorunsuzdur. Uzun bir beklemeden sonra her şey bir anda görünüyorsa arada bir şey yanıtı arabelleğe alıyordur ve bu yol zaman aşımına yatkındır.

Wokey'den gelen 504 ne anlama gelir?

Wokey'nin tüm zaman aşımları 504'tür ve code isteğin nerede takıldığını söyler: upstream_gateway_timeout upstream'in gateway'inin zaman aşımına uğradığı, official_exit_first_byte_timeout upstream'in yanıt vermeye hiç başlamadığı, provider_timeout ise upstream bağlantısının koptuğu veya zaman aşımına uğradığı anlamına gelir.

Akıştaki wokey-transport-keepalive-v1 nedir?

Bir süredir çıktı olmadığında, aradaki cihazların bağlantıyı kesmesini önlemek için Wokey'nin yazdığı bir SSE yorumudur. İstemciler onu yok sayar; görüyorsanız bağlantı canlıdır ve model hâlâ çalışıyordur.

Codex'te zaman aşımları nasıl değiştirilir?

config.toml dosyasındaki provider tablosunda stream_idle_timeout_ms (varsayılan 300000) ve stream_max_retries (varsayılan 5) değerlerini ayarlayın.