Is npm Down Right Now? Check npm Registry Status (2026)

npm install failing? Check npm registry status, test connectivity with npm ping, and distinguish package or private-registry errors from an outage.

By Statusfield Team · Engineering9 min readUpdated September 21, 2026
On this page

Check current npm status: statusfield.com/services/npm

npm's registry hosts over 2.5 million packages and serves billions of download requests per week. When it degrades, npm install hangs, CI pipelines stall, and deploys fail — often with cryptic network errors that look like your connection or the package itself is broken. Here's how to confirm it's npm and not you, and what to do while you wait.

Is npm Down Right Now?

Check these in order, fastest first:

  1. Statusfield — npm status: review the latest recorded status, available components and incident history.
  2. npm's official status page — status.npmjs.org — lists active incidents across the registry, CDN, and website. npm uses Atlassian Statuspage.
  3. Twitter/X — search npm down or npm registry sorted by Latest. Developers report install failures in real time, often before the status page updates.
  4. Your terminal — run npm ping — a successful response includes PONG and shows that the configured registry answered the ping from your machine. If it hangs or throws ECONNREFUSED, the registry or your connection is broken.

A successful npm ping does not test every package download or publishing operation. Compare the failing request with the configured registry, package permissions and current incident details. npm ping documentation

npm Components That Can Fail Independently

npm isn't a single endpoint — the registry, CDN, metadata API, and website are separate services:

ComponentWhat breaks when it fails
Registry APInpm install fails; npm view <pkg> returns errors; npm publish fails
CDN (package tarballs)Metadata resolves but downloading packages times out or returns 503
Website (npmjs.com)Package search and documentation pages unreachable; doesn't affect npm install
npm CLI / update servernpm update checks fail; no impact on installs from a working registry
Scoped registry (private)@company/pkg installs fail if your private registry (JFrog, Verdaccio, GitHub Packages) is down

A CDN failure means metadata fetches work but tarball downloads time out. A registry API failure means both metadata and downloads fail. The status page breaks down which component is affected.

Common npm Error Messages During an Outage

ErrorLikely cause
npm ERR! code ECONNREFUSEDregistry.npmjs.org unreachable — port 443 blocked or registry down
npm ERR! code ETIMEDOUTRegistry reachable but not responding — overloaded CDN or degraded endpoint
npm ERR! code EAI_AGAINDNS resolution failure — either a local DNS issue or npm's DNS is degraded
npm ERR! code E503Registry returned HTTP 503 — service temporarily unavailable
npm ERR! code E429Rate limited — typically from CI jobs hitting the registry too aggressively
npm ERR! network socket hang upCDN dropped the connection mid-download — retry usually fixes it
npm ERR! Unexpected end of JSON inputCorrupt metadata response — can happen during partial registry outages
npm ERR! code CERT_HAS_EXPIREDnpm's certificate expired (rare) or your system clock is wrong
npm WARN registry Using stale package data from the cacheRegistry unreachable, npm falling back to local cache

How to Tell npm Outage From Your Own Network

Before blaming npm, rule out local issues:

bash
# 1. Check if the registry is reachable:
npm ping
# A successful response includes "PONG" and the response time
 
# 2. Test raw connectivity to the registry:
curl -I https://registry.npmjs.org/react
 
# 3. Check your npm proxy/registry config:
npm config get registry
# Should be: https://registry.npmjs.org/ (unless you've set a custom mirror)
 
# 4. Try a known package to isolate the issue:
npm view lodash version
# Should return a version number like "4.17.21"

If npm ping works but a specific package fails, inspect the package URL, version and permissions. The ping alone does not rule out a partial registry or tarball-download incident.

If you're on a corporate network, your company's proxy or firewall may be blocking npm's registry or CDN endpoints. Try from a mobile hotspot to confirm.

Offline Installs: Using Verdaccio as a Local Cache

When npm is down and you need to keep working, a local registry proxy like Verdaccio lets you install from a cached copy of packages you've used before.

Prepare a cache before an outage

A new empty proxy cannot provide packages it has never cached when the upstream registry is unavailable. Set up and test this before relying on it during an outage.

bash
# Install Verdaccio while the upstream registry is available:
npm install -g verdaccio
 
# Start it (runs on http://localhost:4873):
verdaccio &
 
# Use the proxy for this command without changing your saved registry:
npm install react --registry=http://localhost:4873

Once Verdaccio has cached a package, future npm install calls use the cache even if the public registry is down. Particularly useful in CI environments — set Verdaccio as the registry in your pipeline and you get both speed (cache hits) and resilience (outage protection).

Alternative: use npm's built-in cache

npm caches tarballs locally in ~/.npm. If you've installed a package before, you can force install from cache:

bash
# Prefer cached data; missing data may still use the network:
npm install --prefer-offline
 
# Or strictly from cache with no fallback:
npm install --offline

--offline prevents network requests and fails when required data is missing. --prefer-offline skips freshness checks but still fetches missing data. The npm cache is not a guaranteed archive. npm configuration · cache behavior

CI/CD Retry Configuration

npm registry blips cause CI failures that have nothing to do with your code. Set up retry logic so transient outages don't break your pipeline.

GitHub Actions

yaml
# .github/workflows/ci.yml
- name: Install dependencies
  run: npm ci
  env:
    # Retry npm install up to 3 times on network errors:
    NPM_CONFIG_FETCH_RETRIES: 3
    NPM_CONFIG_FETCH_RETRY_MINTIMEOUT: 5000
    NPM_CONFIG_FETCH_RETRY_MAXTIMEOUT: 60000

Or use the actions/setup-node action with caching — it caches ~/.npm between runs, so most installs skip the registry entirely:

yaml
- uses: actions/setup-node@v4
  with:
    node-version: '20'
    cache: 'npm'

.npmrc configuration

Set retry behavior globally via .npmrc (commit this to your repo to apply it in CI):

ini
# .npmrc
fetch-retries=3
fetch-retry-mintimeout=5000
fetch-retry-maxtimeout=60000
fetch-timeout=300000

npm CI with lockfile integrity

In CI, always use npm ci instead of npm install. npm ci requires a package-lock.json and installs exact versions — faster, more deterministic, and safer for production builds:

bash
# In CI: always prefer npm ci
npm ci
 
# Use --prefer-offline to use cache when the registry is slow:
npm ci --prefer-offline

For a release checklist covering npm and other dependencies, see pre-deploy dependency checks.

How to Get npm Outage Alerts

npm registry outages hit hardest when you have a deploy queued or a hotfix to ship. Reported status notifications can help you decide whether to hold a deploy, use a prepared cache, or investigate your own registry configuration.

Monitor npm on Statusfield — Statusfield polls npm's published status source and can notify configured channels when it observes a relevant change. This complements your install and CI logs; publication, polling, and delivery timing can delay an alert. Depending on your plan and configuration, route alerts to:

  • Slack or Discord — drop npm status alerts into your engineering channel to share reported incidents with the team.
  • Email or Telegram — for a personal heads-up when installs start failing in CI.
  • Webhook — pipe status changes into PagerDuty, OpsGenie, or your own alerting pipeline.

If you run a team deploying to production, knowing npm is degraded before you kick off a deploy saves the emergency scramble.

Start monitoring npm on Statusfield → — view the status page and monitoring options.


Frequently Asked Questions

Is npm down right now?

Check statusfield.com/services/npm for the latest recorded npm registry status, or status.npmjs.org for npm's official status page. Run npm ping in your terminal to test registry reachability directly.

Why is npm install failing with ECONNREFUSED?

ECONNREFUSED means npm couldn't connect to the registry at all. Run npm ping to verify — if it also fails, the registry is either down or your network is blocking port 443 to registry.npmjs.org. Check status.npmjs.org and try from a different network to isolate the cause.

Can I install npm packages without internet access?

Use npm install --offline only when the required package data is already cached; it fails if data is missing. --prefer-offline may still use the network. Prepare and test a team registry proxy before an outage rather than assuming a new proxy has every dependency.

How do I stop npm outages from breaking my CI pipeline?

Set fetch-retries=3 in your .npmrc (or via NPM_CONFIG_FETCH_RETRIES=3 env var), cache the npm cache directory between CI runs (GitHub Actions: cache: 'npm' in actions/setup-node), and use npm ci --prefer-offline to hit the cache first. This can reduce transient failures; retries and cache hits do not guarantee that a build will succeed during an outage.

Is it npm's registry or my private scoped registry that's down?

Check by running npm view <public-package> version (e.g., npm view lodash version). If that works but npm install @company/package fails, your private or scoped registry is the issue — not npm's public registry. Check the registry config with npm config get registry and npm config list.

Keep your vendors in view.

Choose from 7,000+ services, follow the components you use, and configure alerts for your team.

Try any paid plan for 30 days, no credit card required. Free trial for first-time customers.