Lingua-e
← Errores
JavaScript

Qué significa ETIMEDOUT y cómo solucionarlo

Referencia del error

ETIMEDOUT

Lenguaje

JavaScript

Severidad

Alta

Cuándo ocurre

ETIMEDOUT es un código de error de red de Node.js que indica que una operación de red (intento de conexión o transferencia de datos) no se completó dentro del tiempo permitido.

Posibles soluciones

Establece timeouts explícitos en todas las llamadas de red salientes. Distingue entre timeouts de conexión (servidor inalcanzable) y timeouts de lectura (servidor lento). Implementa circuit breakers para dependencias que frecuentemente se agotan.

Más detalles

ETIMEDOUT es un código de error de red de Node.js que indica que una operación de red (intento de conexión o transferencia de datos) no se completó dentro del tiempo permitido. Es el equivalente de Node.js al TimeoutError de Python y es distinto de ECONNRESET.

Por qué ocurre

  • El host remoto es inalcanzable y los paquetes SYN se descartan (no se rechazan).
  • Un timeout de conexión se dispara antes de que se complete el handshake TCP.
  • Un timeout de lectura se dispara porque el servidor aceptó la conexión pero nunca respondió.
  • Una cola de servidor sobrecargada nunca procesa la solicitud.

Posibles soluciones

Establece timeouts explícitos en todas las llamadas de red salientes. Distingue entre timeouts de conexión (servidor inalcanzable) y timeouts de lectura (servidor lento). Implementa circuit breakers para dependencias que frecuentemente se agotan.

Ejemplos

JavaScript

Código que causa el error

const axios = require("axios");
await axios.get("https://10.255.255.1/api", { timeout: 3000 });

Error en la terminal

Error: timeout of 3000ms exceeded
    code: 'ETIMEDOUT',
    errno: 'ETIMEDOUT'

Código corregido

const axios = require("axios");
try {
  const res = await axios.get("https://api.example.com/data", {
    timeout: 5000,
  });
} catch (err) {
  if (err.code === "ETIMEDOUT") {
    console.error("Request timed out");
  }
}

Practica en inglés

¿Cómo le explicarías un ETIMEDOUT 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