Qué significa ECONNRESET y cómo solucionarlo
Referencia del error
ECONNRESET
Lenguaje
Severidad
AltaCuá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.
Errores relacionados
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
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-transferError 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