Lingua-e
JavaScript

¿Qué significa Socket Hang Up?

← Errores

El error 'socket hang up' ocurre en Node.js cuando el servidor cierra una conexión HTTP antes de que se reciba una respuesta completa. Está estrechamente relacionado con ECONNRESET y típicamente significa que el servidor cerró el socket prematuramente.

Por qué ocurre

  • El servidor cierra la conexión antes de terminar el cuerpo de la respuesta.
  • Un proxy inverso (nginx, balanceador de carga) se agota y termina la conexión.
  • El servidor se bloquea mientras procesa la solicitud.
  • No vaciar el cuerpo de la solicitud en el lado del servidor hace que el cliente se agote.

Ejemplos

JavaScript

Código que causa el error

const http = require("http");
const req = http.get("http://example.com/api", (res) => {
  res.resume();
});
req.end();
// Server closes connection before sending full response

Error en la terminal

Error: socket hang up
    code: 'ECONNRESET'

Cómo solucionarlo

Siempre adjunta un manejador de evento 'error' a las solicitudes HTTP de Node.js. Implementa lógica de reintento para solicitudes idempotentes. Verifica los logs del servidor para determinar por qué se cierra la conexión anticipadamente. Aumenta la configuración de timeout del proxy si el servidor necesita más tiempo de procesamiento.

Código corregido

const http = require("http");
const req = http.get("http://example.com/api", (res) => {
  let body = "";
  res.on("data", (chunk) => { body += chunk; });
  res.on("end", () => console.log(body));
});
req.on("error", (err) => {
  console.error("Request failed:", err.message);
});

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