EMZETT.
Giriş yap

ECONNRESET: connection reset by peer

Kısaca: Karşı taraf, sen veri gönderirken ya da beklerken TCP bağlantısını ani biçimde sona erdirdi.

Biraz daha ayrıntılı: Mesajlar: Error: read ECONNRESET (Node.js), Connection reset by peer (Linux), ERR_CONNECTION_RESET (Chrome). connection refused’dan (portu kimse dinlemiyor) farklı olarak bağlantı önce kuruldu, sonra sert biçimde iptal edildi (TCP RST).

Ayrıntılı

Olası nedenler

  • Sunucu çöküyor ya da yeniden başlıyor.
  • Bir güvenlik duvarı, proxy veya yük dengeleyici boştaki ya da uzun bağlantıları keser (boşta zaman aşımı).
  • Sunucu, istemcinin hâlâ yeniden kullanmak istediği keep-alive bağlantılarını kapatır.
  • Çok büyük istekler veya sınırların ihlali.
  • Kararsız ağ (Wi-Fi, VPN, mobil) ya da TLS trafiğini engelleyen güvenlik yazılımı.
  • Sunucu aşırı yüklü ve bağlantıları düşürüyor (birikim dolu).
  • TLS yanlış yapılandırması (yanlış sürüm/şifreler).

Çözümler

  1. Sunucu günlüklerini kontrol et: çökme, bellek, yeniden başlatmalar?
  2. Geri çekilmeyle yeniden dene: tekil sıfırlamalar bir ağda olağandır ve istemci tarafından yakalanmalıdır.
  3. İstemcinin, sunucunun ve aracıların zaman aşımlarını ve keep-alive ayarlarını hizala (istemci zaman aşımı sunucununkinden kısa).
  4. Bağlantıları sonsuza dek yeniden kullanma; hatada yenisini aç.
  5. Başka bir ağı, VPN/proxy/antivirüsü test et.
  6. curl -v, openssl s_client veya tcpdump ile ayrıntı topla.
  7. Yükü ve bağlantı sınırlarını kontrol et (örneğin ulimit -n).

Değerlendirme

“Hata yalnızca bazen” örüntüsü zaman aşımlarına veya yük tepelerine, “her zaman” yapılandırmaya ya da güvenlik duvarına işaret eder. Node.js’te: req.on('error', ...) ve keepAlive için Agent ayarlarını yap, hataları ele alınmamış bırakma, aksi hâlde süreç çöker.

Ayrıca bak: ERR_CONNECTION_REFUSED, ERR_CONNECTION_TIMED_OUT, HTTP keep-alive