OAuth error: fetch failed

Status Fixed / completed
Maintainer reply None cached
Activity 21 comments · opened Feb 24, 2025 · closed Feb 27, 2025

When attempting to authenticate, "fetch failed" error is presented after authenticating via web browser. Sign in methods did not yield different results.

<img width="410" alt="Image" src="https://github.com/user-attachments/assets/1ed09daa-c686-4b2c-a53b-64ce2b57df69" />

View original on GitHub ↗

21 Comments

egarl004 · 1 year ago

node version - v22.11.0
npm version - 10.9.0
Mac - 15.3.1 (24D70)

seanxwzhang · 1 year ago

Encountered the same thing, tried both chrome and edge, failed with "OAuth error: fetch failed"

➜  ~ npm --version
10.9.2
➜  ~ node --version
v23.6.0
➜  ~ sw_vers
ProductName:		macOS
ProductVersion:		15.3
BuildVersion:		24D60
➜  ~ claude --version
0.2.9
monsterooo · 1 year ago

I was in the same situation

MayBAMemory · 1 year ago

same

hadi-sg · 1 year ago

I was having the same issue but resolved when removing vpn connection. Worth a try if you're behind corporate vpn/firewall as well.

adaratech · 1 year ago

same issue... anyone solved this?

liaofeng · 1 year ago

same issue

Krushang-Shah · 1 year ago

same issue

egarl004 · 1 year ago
I was having the same issue but resolved when removing vpn connection. Worth a try if you're behind corporate vpn/firewall as well.

I did suspect this, disabled vpn and still had the same issue though on my end.

sebastiangeiger01 · 1 year ago

This is probably due to the ssl certificate chain being broken by zscaler/other SaaS solution used in company networks. Experiencing the same issue...

moob123 · 1 year ago

I am having this same issue with a vanilla internet connection, no vpn, macos, zshell, nvm, v16.14.0, tried both chrome and safari as default browsers. sometimes i get to a key that i can copy in the browser but the shell script will not accept it, shell and browser process seems not to be in phase, just dancing around.

FoRJu · 1 year ago

I am expereincing the same issue above.

Wondering if this is something Claude Code can fix...

FoRJu · 1 year ago

this is fixed with ChatGPT with terminal. Update node and npm to latest version. All fine.

npm --version
10.9.2
node --version
v23.9.0

sjsage522 · 1 year ago

os : Ubuntu 22.04 LTS
node -v : v20.18.0
npm -v : 10.8.2

moob123 · 1 year ago

In my case - with nvm - the issue was a lingering prefix in .npmrc pointing to an older version of node. Now clearing this, with node version
node -v
v20.11.0
it works fine.

shevit · 1 year ago

Step 1: Test what's wrong

Run 'node' then execute

> fetch("https://www.google.com/")

If you see an error, it means that Claude Code has the same problem accessing internet.

Step 2 : Fix:

In my case it was a ZScaler certificate

You need to configure Node.js to trust the Zscaler certificate.

Option 1: set the NODE_TLS_REJECT_UNAUTHORIZED environment variable (quick but insecure)
export NODE_TLS_REJECT_UNAUTHORIZED=0
```` 
#### Option 2: Add the Zscaler certificate to Node.js (recommended )

First, download/export the Zscaler root certificate:

- Open any HTTPS website in your browser
- Click on the padlock icon in the address bar
- View the certificate details
- Export/save the Zscaler root CA certificate (usually named "ZscalerRootCertificate" or similar)

add the certificate to Node.js:

```bash
mkdir -p ~/.node-certs

# Copy your Zscaler certificate there
cp /path/to/ZscalerRootCertificate.pem ~/.node-certs/

# Set the NODE_EXTRA_CA_CERTS environment variable
export NODE_EXTRA_CA_CERTS=~/.node-certs/ZscalerRootCertificate.pem

Add the environment variable to your shell profile for persistence:

bashCopyecho 'export NODE_EXTRA_CA_CERTS=~/.node-certs/ZscalerRootCertificate.pem' >> ~/.bashrc
# Or if using Zsh
echo 'export NODE_EXTRA_CA_CERTS=~/.node-certs/ZscalerRootCertificate.pem' >> ~/.zshrc
ArthurClune · 1 year ago

Thanks to @shevit !

For those not behind a VPN device but getting the same error, the safe fix is to tell node where your certificates are. On macOS

$ export NODE_EXTRA_CA_CERTS=/etc/ssl/cert.pem
$ claude

and things should work.

egarl004 · 1 year ago

thanks @shevit! worked perfectly.

kurosato · 1 year ago

Thanks @shevit ! The fetch showed that npm was defaulting to IPV6 usage (Ubuntu server 24.04), after changing the NODE_OPTIONS as below, this solved the issue.

Linux/macOS

export NODE_OPTIONS="--dns-result-order=ipv4first"

Windows Command Prompt

set NODE_OPTIONS=--dns-result-order=ipv4first

Windows PowerShell

$env:NODE_OPTIONS="--dns-result-order=ipv4first"

PitzTech · 1 year ago

Thanks @kurosato!!
export NODE_OPTIONS="--dns-result-order=ipv4first" worked for me on WSL

Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04

github-actions[bot] · 1 year ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.