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.

“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ó.
