ECONNRESET (errno 104)
errno 104
Messaggio ufficiale (come appare sullo schermo): Connection reset by peer
Cercato anche come: Connection reset by peer, errno 104, read ECONNRESET, socket hang up
Che cosa significa
ECONNRESET, «Connection reset by peer» (errno 104 su Linux, 54 su macOS), significa che l'altro capo di una connessione TCP l'ha interrotta bruscamente con un pacchetto di reset. Node.js lo riporta come 'socket hang up' o 'read ECONNRESET'. Il server remoto, un proxy o un firewall ha chiuso la connessione mentre era in uso.
Si applica a: Linux, macOS (errno BSD), WSL, Container Docker
Come risolvere ECONNRESET (errno 104)
- Riprova la richiesta: i reset temporanei sono comuni sulle reti e vanno gestiti con tentativi ripetuti e backoff
- Verifica se il servizio remoto si è riavviato o è andato in crash in quel momento (log del server, health check)
- Allinea i timeout keep-alive: imposta il timeout di inattività del client più breve di quello del server o del load balancer, così il client non riutilizza mai una connessione già chiusa dal server
- Controlla le impostazioni TLS quando ti connetti a endpoint HTTPS: incompatibilità di protocollo o SNI causano reset durante l'handshake
- Cerca firewall, dispositivi NAT o proxy che interrompono le connessioni inattive e attiva il keep-alive TCP
- Cattura il traffico con 'sudo tcpdump -i any host <ip> and port <port>' per vedere quale lato invia l'RST
Perché succede
Un RST arriva quando il peer chiude un socket con dati non letti, va in crash, rifiuta la connessione a metà flusso, oppure quando un middlebox interrompe flussi inattivi o sospetti.
Domande frequenti
Che cosa causa 'read ECONNRESET' in Node.js?
Il server ha chiuso la connessione in modo imprevisto, spesso per il riutilizzo keep-alive dopo il timeout di inattività del server, per un crash o per problemi TLS.
Errori correlati
Fonte: Linux kernel errno.h · soluzioni scritte e verificate dalla redazione (vedi la nostra politica editoriale)
Ultimo aggiornamento: