Lingua-e
← Errores
JavaScript

Qué significa ECONNRESET y cómo solucionarlo

Referencia del error

ECONNRESET

Lenguaje

JavaScript

Severidad

Alta

Cuándo ocurre

ECONNRESET es un error de red de Node.js que ocurre cuando una conexión TCP es cerrada forzosamente por el par remoto mientras los datos aún se están transfiriendo.

Posibles soluciones

Implementa lógica de reintento con retroceso exponencial para errores ECONNRESET transitorios. Establece configuraciones apropiadas de keep-alive y timeout en tu agente HTTP. Monitorea patrones (todas las solicitudes a un servidor reiniciándose) para distinguir problemas de infraestructura de bugs en el código.

Más detalles

ECONNRESET es un error de red de Node.js que ocurre cuando una conexión TCP es cerrada forzosamente por el par remoto mientras los datos aún se están transfiriendo. A diferencia de ECONNREFUSED (conexión rechazada antes de comenzar), ECONNRESET ocurre durante la conexión.

Por qué ocurre

  • El servidor remoto se bloquea o reinicia mientras una solicitud está en progreso.
  • Un balanceador de carga o proxy tiene un timeout de inactividad más corto que tu cliente.
  • El servidor envía un paquete TCP RST para cerrar la conexión abruptamente.
  • Equipos de red (firewalls, NAT) descartan una conexión inactiva.

Posibles soluciones

Implementa lógica de reintento con retroceso exponencial para errores ECONNRESET transitorios. Establece configuraciones apropiadas de keep-alive y timeout en tu agente HTTP. Monitorea patrones (todas las solicitudes a un servidor reiniciándose) para distinguir problemas de infraestructura de bugs en el código.

Ejemplos

JavaScript

Código que causa el error

const http = require("http");
const req = http.get("http://example.com/large-file", (res) => {
  res.on("data", () => {});
});
// Remote server closes the connection mid-transfer

Error en la terminal

Error: read ECONNRESET
    at TLSSocket.onConnectEnd (_tls_wrap.js:...)
    errno: -54,
    code: 'ECONNRESET',
    syscall: 'read'

Código corregido

const http = require("http");
const req = http.get("http://example.com/large-file", (res) => {
  res.on("data", () => {});
  res.on("error", (err) => console.error("Response error:", err));
});
req.on("error", (err) => {
  if (err.code === "ECONNRESET") {
    console.error("Connection reset by peer, retrying...");
  }
});

Practica en inglés

¿Cómo le explicarías un ECONNRESET a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis