Kılavuzlara dön
Sorun giderme·1 Ekim 2026·7 dk okuma

NanoClaw Codex zaman aşımı: takılan bir tur neden on dakika bekliyor, yeniden üretildi

Takılmış bir Responses WebSocket'i, gizli bir ilk yeniden deneme ve sabit on dakikalık tur zamanlayıcısı: bot sessizleşir, ardından başarısız olur ve bu sırada gönderilen mesajlar kaybolur. Bir yedek uç noktaya karşı yeniden üretildi; işe yarayan kurtarma yöntemi de dahil edildi.

Son inceleme tarihi: .

NanoClaw’ın Codex sağlayıcısında “Turn timed out after 600000ms”, Codex’in Responses WebSocket’inin olay göndermeyi bıraktığı ve Codex’in bildirdiği ilk hatanın, NanoClaw’ın sabit on dakikalık tur zamanlayıcısı zaten çalıştıktan sonra geldiği anlamına gelir. Codex boşta kalan akışta beş dakika bekler, ilk seferde sessizce yeniden dener ve yalnızca ikinci yeniden denemeyi bildirir. Bunu 1 Ekim 2026’da, hata raporundaki sürüm olan Codex 0.138.0 ve NanoClaw’ın şu anda sabitlediği sürüm 0.155.1 ile, bağlantıyı kabul edip sonra sessiz kalan yerel bir uç noktaya karşı yeniden ürettik.

Bu, kontrol edildiğinde açık ve bakımcı yanıtı bulunmayan NanoClaw issue #3338 arkasındaki yeniden üretimdir. Sağlayıcı seçeneklerinin kendisi için bkz. NanoClaw API maliyeti ve sağlayıcılar; bot başka nedenlerle Telegram’da sessizse bkz. NanoClaw Telegram yanıt vermiyor.

Gördüğünüz

Bota gönderilen bir mesajdan yanıt gelmiyor — hata yok, kısmi yanıt yok — on dakika boyunca, ardından bir hata geliyor. Bu sırada gönderilen mesajlar kaybolmuş gibi görünüyor. Günlüklerde:

Günlüklerde takılma nasıl görünür?
# Codex, inside the agent container (from the issue; our 0.155.1 run printed the same reason)
stream error: idle timeout waiting for websocket
stream disconnected - retrying sampling request (1/5 ...)

# NanoClaw, ten minutes after the message
Error: Turn timed out after 600000ms

Yeniden üretimin gösterdiği şey

Turdan itibaren saniyelerCodex 0.138.0Codex 0.155.1 (NanoClaw’ın sabitlediği sürüm)
≈1–16İlk istek WebSocket üzerinden gönderildi; yanıt yokCodex tarafından 16. saniyede kapatılan bir ısınma isteği; gerçek istek ardından geliyor
≈300–316İlk istek zaman aşımına uğrar; Codex turun isteğini yeniden gönderir — bildirim yokBoşta kalma zaman aşımı; yeniden deneme 1 günlüğe yazılır — bildirim yok
600NanoClaw’ın zamanlayıcısı turu bitirir: “Turn timed out after 600000ms”
≈601–616Boşta kalma zaman aşımı; “retrying sampling request (1/5)” günlüğe yazılır — hâlâ bildirim yok (750 saniyenin tamamında hiç yok)İlk error bildirimi: “Reconnecting... 2/5”, “idle timeout waiting for websocket” — 15 saniye geç

Uç nokta, WebSocket’i kabul edip hiçbir şey göndermeyen bir stand-in’di; istemci gerçek Codex app-server ikili dosyasıydı, NanoClaw’ın yaptığı çağrıların aynısıyla çalıştırıldı ve NanoClaw’ın kendi kuralıyla değerlendirildi — herhangi bir hata bildirimi veya tamamlanmış tur sonlandırır, aksi hâlde on dakikalık zamanlayıcı sonlandırır.

Zamanlama neden bu kadar kötü hizalanıyor?

  • Codex, akışın öldüğüne karar vermeden önce bir Responses akışında sonraki olayı 300 saniye bekler ve beş kata kadar yeniden dener. Bunlar her iki sürümdeki yerleşik OpenAI sağlayıcısının varsayılanlarıdır.
  • Codex ilk WebSocket yeniden denemesini gizler. Yeniden deneme kodu bunu bir yorumda açıkça söyler — “Gürültülü geçici yeniden bağlanma mesajlarını azaltmak için sürüm derlemelerinde ilk websocket yeniden deneme bildirimini gizle” — bu nedenle bir ön yüz ikinci yeniden denemeye, yaklaşık onuncu dakikaya kadar hiçbir şey duymaz.
  • NanoClaw, Codex turuna tam olarak 600.000 ms verir ve herhangi bir hata bildiriminde turu bitirir. İki boşta kalma penceresi ile Codex’in ısınması bunun ötesine geçtiğinden, varsayılan ayarlarla zamanlayıcı kazanır.

Sessizlik sırasında gönderilen mesajlar kaybolur

NanoClaw, etkin bir tur sırasında gelen takip mesajını Codex’in turn/steer’ine gönderir. Çalıştırmada Codex bunu durmuş tura kabul etti ve üst akışa yeni bir şey göndermedi; zaman aşımından sonra iş parçacığına devam edildiğinde geçmişte özgün istem vardı, ancak yönlendirilen mesaj yoktu. Botun tamamen takılı görünmesinin nedeni budur: yazdığınız her şey asla tamamlanmayacak bir tura girer.

Nasıl çıkılır?

Doğrulandı: zaman aşımından sonra sonraki mesaj, yeni bir app-server üzerinde aynı iş parçacığına devam eder — NanoClaw’ın yaptığı budur — ve çalıştırmada uç nokta yanıt verdiğinde 0,16 saniyede tamamlandı. Yani zaman aşımını bekleyin, ardından sessizlik sırasında yazdığınız her şeyi tekrar gönderin. Sonraki mesaj da takılırsa üst akış bağlantısı hâlâ sorundur — OpenAI’ın durumunu ve kapsayıcı OpenAI’a bir proxy üzerinden ulaşıyorsa bu proxy’nin WebSocket yükseltmelerini geçirip geçirmediğini kontrol edin (PR #2672, geçirmeyen proxy’leri açıklıyor; burada test edilmedi).

Beklemeyi kısaltan, ölçülmüş ancak gönderilmemiş seçenekler:

DeğişiklikNanoClaw’ın gördüğü ilk hataYakalama
WebSocket yerine HTTP/SSE üzerinden Codex — PR #3851, açık, birleştirilmemiş300 sn: “Reconnecting... 1/5”Bildirim, Codex’in yeniden deneyeceğini söylüyor ve öyle yaptı; ancak NanoClaw turu bunun üzerine bitiriyor — on dakikalık tur yerine beş dakikalık başarısızlık
WebSocket’lerde Codex stream_idle_timeout_ms = 60.000136 snNanoClaw, Codex’in config.toml dosyasını kendisi yazıyor; dolayısıyla bu ekleyebileceğiniz bir ayar değil, kod değişikliğidir

Her ikisi de turu hâlâ başarısızlık olarak bitiriyor. Ölçümlerin işaret ettiği yer NanoClaw tarafı — yeniden denemekte olan bir hatayı bitiş yerine ilerleme olarak ele almak veya tur bütçesini son gerçek olaydan itibaren ölçmek — ancak bu, bu çalıştırmalardan çıkarılan bir sonuçtur; bakımcıların doğruladığı bir düzeltme değildir.

Sık sorulan sorular

NanoClaw’ın Codex aracısı neden on dakika sessiz kalıp sonra zaman aşımına uğruyor?

Çünkü Codex’in bildirmeye razı olduğu ilk sorun işareti, NanoClaw’ın zaten vazgeçmesinden sonra gelir. Responses WebSocket’i olay göndermeyi bıraktığında Codex, 300 saniyelik boşta kalma zaman aşımını bekler ve yeniden dener — ayrıca sürüm derlemelerinde ilk WebSocket yeniden denemesini kasıtlı olarak gizler. İlk hata bildirimi, ikinci 300 saniyelik pencereden sonra, NanoClaw’ın sabit 600.000 ms’lik tur zamanlayıcısını aşınca gelir. Bunu 1 Ekim 2026’da yeniden ürettik: Codex 0.138.0, 750 saniye boyunca hiç bildirim göndermedi; NanoClaw’ın mevcut sabitlediği sürüm olan 0.155.1 ise ilk bildirimini 615,7 saniyede gönderdi; NanoClaw’ın kuralı turu 600’de bitirdi.

Bot takılıyken gönderdiğim mesajlara ne olur?

Takılı tura yönlendirilirler ve bizim çalıştırmamızda kayboldular. NanoClaw, etkin bir tur sırasında gelen takip mesajını Codex’in turn/steer’ine yönlendirir; Codex bunu aynı durmuş tura kabul etti, üst akışa yeni bir şey göndermedi ve zaman aşımından sonra devam edildiğinde yönlendirilen metin iş parçacığının geçmişinde yoktu. Bot yeniden yanıt verdiğinde sessizlik sırasında yazdığınız her şeyi tekrar gönderin.

NanoClaw Codex turu zaman aşımından nasıl kurtarılır?

Sonraki mesajı gönderin. NanoClaw yeni bir app-server başlatır ve aynı iş parçacığına devam eder; bizim çalıştırmamızda uç nokta yanıt verdiğinde devam eden tur 0,16 saniyede tamamlandı ve özgün istem hâlâ geçmişteydi. Üst akış hâlâ takılıyorsa yeni tur da aynı şekilde takılır; bu nedenle önce OpenAI’ın durumunu veya ağ yolunuzu kontrol edin — ayrıca yutulan takip mesajlarını tekrar gönderin.

Codex’i WebSocket yerine HTTP’ye geçirmek sorunu çözer mi?

Sessizliği kısaltır, ancak birleştirilmiş değildir. PR #3851 (açık, sorunu bildiren kişiden) Codex’i HTTP/SSE üzerinden yönlendiren NANOCLAW_CODEX_TRANSPORT=http değişkenini ekler. Bu biçimdeki çalıştırmamızda ilk hata bildirimi zamanlayıcıdan sonra değil, 300 saniyede geldi — ancak Codex zaten yeniden gönderim yaparken willRetry true taşıyordu ve NanoClaw herhangi bir hata bildiriminde turu bitiriyor; dolayısıyla tur kurtulmak yerine beş dakikada başarısız olurdu.

Bu genel bir Codex zaman aşımı mı?

Hayır. Codex kendisi yeniden denemeye devam eder; on dakikalık sessizlik, NanoClaw’ın tur zamanlayıcısının Codex’in gizli ilk yeniden denemesiyle hizalanmasından kaynaklanır. 0.155.1’de app-server yaklaşık 616. saniyede “Reconnecting... 2/5” bildirdi — daha uzun tur bütçesine sahip bir istemci bunu görürdü; NanoClaw ise hiç görmez. NanoClaw’ın varsayılan sağlayıcısı Claude Agent SDK’dır ve bununla ilgili değildir.

1 Ekim 2026’da npm’den alınan derlenmiş codex app-server ikili dosyalarıyla (@openai/codex 0.138.0 ve 0.155.1, darwin-arm64), NanoClaw’ın providers dalındaki initialize, thread/start, turn/start ve turn/steer parametreleri kullanılarak stdio üzerinden çalıştırıldı (commit 3959d1f055); WebSocket ve HTTP/SSE üzerinden yerel bir Responses stand-in’ine karşı yeniden üretildi. Codex varsayılanları ve gizli ilk yeniden deneme, rust-v0.138.0 ve rust-v0.155.1 etiketlerindeki codex-rs’den okundu. Çalıştırılmadı: NanoClaw’ın orkestratörü ve kapsayıcısı, OneCLI, Telegram veya OpenAI’ın gerçek uç noktası — stand-in, OpenAI’ın sessizleşmesine neyin yol açtığını değil, sessiz bir akışı yeniden üretir. Issue ve pull request durumu aynı gün okundu.