Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿npm muestra “getaddrinfo EAI_AGAIN”? Demuestra el contexto DNS antes de cambiarlo

Fija el hostname del registry y el shell, CI, WSL o contenedor que falla; prueba la resolución allí y separa proxy, TLS y registry sin fijar una IP.

Original diagram mapping npm EAI_AGAIN across caller, operating-system resolver, npm proxy or registry configuration, and registry reachability.
Ilustración original: Original illustration: prove the exact execution context and each boundary before changing DNS. Watch at Ease

“getaddrinfo EAI_AGAIN” indica un fallo temporal en la resolución de nombres. No demuestra que npm esté caído ni que el navegador use el mismo resolver que el proceso que falla.

Empieza dentro del shell, runner, WSL o contenedor exacto. Registra registry y proxy efectivos, prueba allí la resolución y pasa a conexión, TLS y HTTP solo cuando el hostname se resuelva.

Fija el caller y hostname exactos

Guarda error completo, comando, hora y si proviene de shell, IDE, servicio, CI, WSL o contenedor. No sustituyas la prueba con un navegador de otro contexto.

Imprime registry y proxy efectivos sin exponer credenciales; registra argumentos, variables y npmrc de proyecto, usuario y global.

Prueba la resolución dentro del contexto que falla

Resuelve el hostname exacto con el mismo usuario, namespace y red, varias veces. Ejecuta la prueba dentro de contenedor o CI; el host no es evidencia equivalente.

Registra resolver, dominios de búsqueda, VPN, split DNS y alcance del nameserver. No reemplaces primero el DNS corporativo por uno público.

Separa DNS de proxy y transporte del registry

Ejecuta npm ping contra el registry efectivo. Si continúa EAI_AGAIN, sigue en DNS; si resuelve pero aparece timeout, certificado o HTTP, trata esa capa aparte.

Registra el origen de proxy y https-proxy antes de editarlos. El hostname del proxy también debe resolver; elimina solo una configuración demostrada como incorrecta.

Abre ramas para contenedor, WSL y CI

En Docker compara red y DNS del contenedor con el host y prueba la etapa build o runtime que falló. Reiniciar puede ocultar un transitorio sin explicar la causa.

En WSL y CI registra archivos resolver generados, momento de VPN e imagen del job. No cambies todo el repositorio por un solo runner.

Verifica sin atajos

Repite resolución, npm ping y npm install/ci desde el mismo caller. Confirma el hostname configurado y elimina entradas hosts o DNS públicos temporales.

Para fallos intermitentes exige éxitos repetidos durante la ventana de compilación y conserva tiempos y la frontera que cambió.

Original decision tree separating name-resolution failure from npm registry, proxy, connection, TLS and HTTP failures.
Ilustración original: Original illustration: branch on evidence and avoid hard-coded registry IPs or TLS bypasses. Watch at Ease