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.
Ejemplos
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ómo solucionarlo
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.
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");
}
}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