ECONNRESET (errno 104)

errno 104

LINUX

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

Terminal Linux exécutant strace, avec l'appel système en échec et l'errno mis en évidence
errno Linux : tracez l'appel système exact qui échoue avant de modifier quoi que ce soit.

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)

  1. 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
  2. Vérifiez si le service distant a redémarré ou planté à ce moment-là (journaux du serveur, contrôles d’état)
  3. 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
  4. 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
  5. Recherchez les pare-feu, équipements NAT ou proxys qui coupent les connexions inactives, et activez le keep-alive TCP
  6. 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 :