EagleEye
EagleEye

Reputation: 1213

ETIMEDOUT Error while installing Node packages on Windows

I am trying to install node packages on my windows machine using npm from a fresh install of node.

however, I am getting ETIMEDOUT errors. I checked few other stackoverflow questions with similar problem and almost all of them are related to problems when behind a proxy. Same is not the case with me. My system is not behind any proxy server. Can someone help me with resolving it.

PS C:\windows\system32> npm -v
2.5.1
PS C:\windows\system32> npm install bower -g
npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "i
nstall" "bower" "-g"
npm ERR! node v0.12.0
npm ERR! npm  v2.5.1
npm ERR! code ETIMEDOUT
npm ERR! errno ETIMEDOUT
npm ERR! syscall connect

npm ERR! network connect ETIMEDOUT
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! Please include the following file with any support request:
npm ERR!     C:\windows\system32\npm-debug.log

Upvotes: 48

Views: 173692

Answers (28)

Anton Kaiser
Anton Kaiser

Reputation: 723

None of the answers here worked for me. I followed the official Microsoft guide and the next day I realized npm install wouldn't work. The nodeJS versions I had were 23 and 22 (LTS).

I downgraded to version 18 and suddenly npm install worked again:

nvm install 18

Something is wrong with versions 22 and 23 on WSL2/Ubuntu.

Upvotes: 0

Ruman
Ruman

Reputation: 1044

I faced the same issue. In my case, following steps help me to resolve the issue. Adding 2 lines in .npmrc file and retrying to install the package again

registry=https://registry.npm.taobao.org/
strict-ssl=false

In my linux machine, using different registry and disabling strict-ssl get the job done. This solution may or mayn't work in every case but you can give it a try.

Upvotes: 1

geekley
geekley

Reputation: 1705

If it's not proxy, the issue might be with IPv6. Check:

ping -4 registry.npmjs.org # does IPv4 connect?
ping -6 registry.npmjs.org # does IPv6 connect?
npm ping # alternative command

If the issue is that only IPv6 is not working (could be e.g. your ISP's fault), then you can use node flag --dns-result-order=ipv4first to make npm prefer IPv4:

node --dns-result-order=ipv4first /path/to/npm

This is useful if you don't want to disable IPv6 or change network settings on your system.

In Ubuntu, I had first set up a command like this on ~/.bash_aliases:

alias npm-ipv4="node --dns-result-order=ipv4first $(which npm)"

Then I could do npm-ipv4 ping to confirm it works, and use it normally, like npm-ipv4 install ... if regular npm doesn't work because of an IPv6 issue.

However, when trying to update node, it wasn't enough because node was being run from some script during the update, without the flag. So, instead, I made an executable node script with PATH precedence (e.g. ~/.local/bin/node), which calls node with the flag, like:

#!/usr/bin/env bash
node=/path/to/node # e.g. /usr/bin/node or $NPM_CONFIG_PREFIX/bin/node
$node --dns-result-order=ipv4first "$@"

Then I can just use it normally like npm i -g node, etc.

Upvotes: 10

Emiliano Barboza
Emiliano Barboza

Reputation: 485

This was a wired solution, but in my case just turn off/on the wifi, resolved the issue. Really extrange, since I was googling the solution, so I had internet conexion

Upvotes: 0

Felipe Renovato
Felipe Renovato

Reputation: 67

I connected to my work VPN and it worked.

Upvotes: 1

Umair Munawar
Umair Munawar

Reputation: 11

npm config delete proxy npm config delete http-proxy npm config delete https-proxy

use these commands and then change the network like change wifi network to mobile data or any other I spent a lot of time then resolve by this method

Upvotes: 1

Raju
Raju

Reputation: 13

For me changing to a different network seemed to fix it. Maybe the router has certain proxy settings that timeouts npm.

Upvotes: 0

Tamar
Tamar

Reputation: 31

If you have internet filter turns out it was related to it. I found out that the problem was because of it (when I didn't have internet filter, the npm commands worked perfectlly) the reason is that they use 'proxy'.

Nothing helped me because I was not behind 'proxy', - Then i diabled ipv6 and it worked.

To Disable IPv6 in Windows 11 you can use this guide: https://www.itechguides.com/how-to-disable-ipv6-in-windows-11/ .

BTW, If you disable IPv6 on your computer, you might lose access to IPv6-only websites. Also, you might lose some network management advantages as well. So you can just enable ipv6 again right after you run the command you need..

Upvotes: 3

Rovan Lama
Rovan Lama

Reputation: 33

None of the above solution worked for me and I ended up updating npm's version which worked for me.

Upvotes: 1

Rohitash Singh
Rohitash Singh

Reputation: 11

First, check for environment variables and use following command to remove proxy:

npm config delete proxy
npm config delete http-proxy
npm config delete https-proxy

This works for me.

Upvotes: 1

Laurent
Laurent

Reputation: 1

On windows 10, adding Node.js to the firewall authorized applications AND restarting the laptop solved the problem.

Upvotes: 0

SAURAV ANAND
SAURAV ANAND

Reputation: 21

I also face this issue

Solution

  1. Just uninstall Node.js .
  2. uninstall its package also which you downloaded from website.
  3. Download Node.js from website.
  4. Reinstall Node.js .

It will Work.

Upvotes: 0

Djones4822
Djones4822

Reputation: 767

If removing the npm proxy config settings (or correctly setting them, if that is necessary for you) did not fix it, then This github issue discusses what might be happening. My summary is that for some reason the ipv6 dns resolution to the registry is not resolving correctly and seems to be randomly failing for people.

My command was fetching from registry.npmjs.org using npm 9.1.2 and node 18.12.1 - I was running this from a windows terminal via vscode.

I ended up disabling ipv6 via the network properties of my adapter see here

Again, changing the npm config proxy settings did not resolve anything for me. I re-enabled ipv6 after my command finished.

Upvotes: 21

T3rm1
T3rm1

Reputation: 2532

Not on Windows but it can help there as well.

Node 16 worked, Node 18 did not. Turns out it was related to IPv6. As soon as I disabled IPv6 the connection did not timeout any more. The target registry was a Nexus server.

Upvotes: 16

Tuấn Mạch
Tuấn Mạch

Reputation: 13

After all the effort with no result, I reboot my router and it works!

Upvotes: 0

Sunil
Sunil

Reputation: 185

I tried to implement all solutions and suggested commands for npm and yarn but it's not resolved.

When I disable my VPN and try to "yarn install, " it will work fine.

Upvotes: 0

alphacat
alphacat

Reputation: 69

If none of the mention solutions works for you then, try switching your node version.

Upvotes: 2

Charles Owen
Charles Owen

Reputation: 2840

One way to resolve this is to set Fiddler as your proxy server. This probably only works for windows.

Running Fiddler, type these commands:

npm config set proxy http://localhost:8888

npm config set https-proxy http://localhost:8888

Before you do this, Rules -> Automatically Authenticate

Upvotes: 1

Mansi
Mansi

Reputation: 21

I was not able to install any packages before because of this error then after 1 hour, I finally resolved it because I was not behind a proxy but the proxy parameters got set in the npm config thats why that error was showing.

I'am posting it because if anyone is facing the same issue and if they are not behind any proxy then they can use the following commands:-

npm config rm proxy

npm config rm https-proxy

npm config delete http-proxy

npm config delete https-proxy

set HTTP_PROXY=null

set HTTPS_PROXY=null

Upvotes: 2

EagleEye
EagleEye

Reputation: 1213

I am posting this answer in case some one faces the same issue.

I was able to solve this by running following command:

npm config delete proxy

Upvotes: 61

M M
M M

Reputation: 725

For people working in corporates (where you cannot delete or edit the proxy configuration of the organization):

There must be an .npmrc file in your users folder. If not, you can create one. This file can be edited to register the proxy settings of your organization. Contact your organization's IT team to get the relevant proxy details.

Example of the .npmrcfile contents for my organization:

strict-ssl=false
registry=https://nexus.com/nexus/content/groups/npm-read/
proxy=http://primary-proxy.gslb.intranet.com:8080/
https-proxy=http://primary-proxy.gslb.intranet.com:8080

This file can be found in your users folder:

enter image description here

Upvotes: 2

nishant kaushik
nishant kaushik

Reputation: 11

I was going through the same error. the root cause was the proxy settings : there are several answers provided in here to reset the proxy but none of them worked for me. Below commands solved my problem, give them a try.

npm config rm proxy 
npm config rm https-proxy

Upvotes: 0

Diego Figueroa
Diego Figueroa

Reputation: 101

First see the npm config list:

npm config list

If you don't find http-proxy, https-proxy and proxy correctly set, then You need to configure npm to work with your web proxy. For example:

npm config set proxy http://proxy.company.com:8080 
npm config set https-proxy http://proxy.company.com:8080 
npm config set http-proxy http://proxy.company.com:8080

Upvotes: 10

Nadun Kulatunge
Nadun Kulatunge

Reputation: 1731

First, run npm config list and check whether you are behind a proxy. If so, try running

npm config delete proxy
npm config delete http-proxy
npm config delete https-proxy

as required

**If this method did not work, reinstall nodejs.

Upvotes: 22

guntarion
guntarion

Reputation: 101

I solved it with the following:

npm config rm proxy
npm config rm https-proxy

npm config delete http-proxy
npm config delete https-proxy

set HTTP_PROXY=null
set HTTPS_PROXY=null

Upvotes: 0

Danilo Gutiérrez
Danilo Gutiérrez

Reputation: 311

I solved with:

npm config set proxy null

Upvotes: 0

Erwin Mayer
Erwin Mayer

Reputation: 18670

You can try to throttle the number of simultaneous connections with the following command (for example 3 maximum simultaneous connections):

npm set maxsockets 3

The CLI has been allowing this option since [email protected]. The default is 50 simultaneous connections max. See this link for further reference.

Upvotes: 6

Gábor Nagy
Gábor Nagy

Reputation: 189

I tried all the suggested solutions I could find on GitHub forums and StackOverflow topics. Finally disabling my router's firewall solved the issue immediately.

I am using Windows 10, node 4.0.0 and npm 2.13.4.

Upvotes: 8

Related Questions