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
- Sunucu günlüklerini kontrol et: çökme, bellek, yeniden başlatmalar?
- Geri çekilmeyle yeniden dene: tekil sıfırlamalar bir ağda olağandır ve istemci tarafından yakalanmalıdır.
- İstemcinin, sunucunun ve aracıların zaman aşımlarını ve keep-alive ayarlarını hizala (istemci zaman aşımı sunucununkinden kısa).
- Bağlantıları sonsuza dek yeniden kullanma; hatada yenisini aç.
- Başka bir ağı, VPN/proxy/antivirüsü test et.
curl -v,openssl s_clientveyatcpdumpile ayrıntı topla.- 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