ECONNRESET (errno 104)
errno 104
Message officiel (tel qu'affiché à l'écran) : Connection reset by peer
Aussi recherché sous la forme : Connection reset by peer, errno 104, read ECONNRESET, socket hang up
Ce que cela signifie
ECONNRESET, « Connection reset by peer » (errno 104 sous Linux, 54 sous macOS), signifie que l’autre extrémité d’une connexion TCP l’a brutalement interrompue par un paquet de réinitialisation. Node.js le signale par « socket hang up » ou « read ECONNRESET ». Le serveur distant, un proxy ou un pare-feu a fermé la connexion alors qu’elle était utilisée.
S'applique à : Linux, macOS (errno BSD), WSL, Conteneurs Docker
Comment corriger ECONNRESET (errno 104)
- Relancez la requête ; les réinitialisations ponctuelles sont courantes sur les réseaux et doivent être gérées par des nouvelles tentatives avec temporisation croissante
- Vérifiez si le service distant a redémarré ou planté à ce moment-là (journaux du serveur, contrôles d’état)
- Harmonisez les délais keep-alive : réglez le délai d’inactivité du client plus court que celui du serveur ou de l’équilibreur de charge, afin que le client ne réutilise jamais une connexion déjà fermée par le serveur
- Vérifiez les paramètres TLS lors de la connexion à des points de terminaison HTTPS ; des différences de protocole ou de SNI provoquent des réinitialisations pendant la négociation
- Recherchez les pare-feu, équipements NAT ou proxys qui coupent les connexions inactives, et activez le keep-alive TCP
- Capturez le trafic avec 'sudo tcpdump -i any host <ip> and port <port>' pour voir quel côté envoie le RST
Pourquoi cela se produit
Un RST arrive lorsque l’interlocuteur ferme un socket alors que des données n’ont pas été lues, plante, rejette la connexion en cours de route, ou lorsqu’un équipement intermédiaire coupe les flux inactifs ou suspects.
FAQ
Qu’est-ce qui provoque « read ECONNRESET » dans Node.js ?
Le serveur a fermé la connexion de façon inattendue, souvent à cause de la réutilisation d’une connexion keep-alive après le délai d’inactivité du serveur, d’un plantage ou de problèmes TLS.
Erreurs liées
Source : Linux kernel errno.h · solutions rédigées et vérifiées par les éditeurs (voir notre politique éditoriale)
Dernière mise à jour :