Lingua-e
JavaScript

¿Qué significa ECONNRESET?

← Errores

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.

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ómo solucionarlo

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.

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...");
  }
});

Errores relacionados

¿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