upstash/context7 · warning

Couldn't check for updates right now.

Error message

Couldn't check for updates right now.

What it means

Warned by `ctx7 upgrade` when checkForUpdates({ force: true }) resolved to null — the update check against the npm registry could not be completed (network error, DNS failure, proxy block, or registry 5xx, all swallowed into a null). The CLI prints a retry hint plus the manual upgrade command from the resolved upgrade plan (e.g. the install command for your package manager) and exits without upgrading.

Source

Thrown at packages/cli/src/commands/upgrade.ts:130

  }

  log.box([
    `${pc.white(pc.bold("Update available:"))} ${pc.green(pc.bold(`v${info.currentVersion}`))} ${pc.dim("->")} ${pc.green(pc.bold(`v${info.latestVersion}`))}`,
    `${pc.white("Run")} ${pc.yellow(pc.bold("ctx7 upgrade"))} ${pc.white("to update now")}`,
    `${pc.white("Or run")} ${pc.yellow(info.upgradePlan.displayCommand)}`,
  ]);
  await markUpdateNotificationShown(info.latestVersion);
  log.blank();
}

async function upgradeCommand(options: UpgradeOptions): Promise<void> {
  trackEvent("command", { name: "upgrade" });

  const info = await checkForUpdates({ force: true });
  const plan = info?.upgradePlan ?? getUpgradePlan();

  if (!info) {
    log.warn("Couldn't check for updates right now.");
    log.info(`Try again later or run ${pc.cyan(plan.displayCommand)} manually.`);
    return;
  }

  if (!info.updateAvailable) {
    log.success(`ctx7 is up to date (${pc.bold(`v${VERSION}`)})`);
    return;
  }

  log.blank();
  log.info(
    `Update available: ${pc.bold(`v${info.currentVersion}`)} ${pc.dim("->")} ${pc.bold(`v${info.latestVersion}`)}`
  );

  if (plan.needsExplicitVersion) {
    log.info(`You're using an ephemeral runner (${plan.installMethod}).`);
    log.info(`Use ${pc.cyan(plan.displayCommand)} to run the latest version immediately.`);
    log.info(`Or install globally with ${pc.cyan("npm install -g ctx7@latest")}.`);

View on GitHub (pinned to 5284672feb)

Solutions

  1. Check connectivity to the registry: `npm ping` or `curl -I https://registry.npmjs.org`
  2. Fix or unset proxy env vars (HTTP_PROXY/HTTPS_PROXY) and re-run `ctx7 upgrade`
  3. Run the manual command the CLI printed, e.g. `npm install -g @upstash/context7@latest`
  4. If the registry is down, simply retry later

Example fix

# before
$ ctx7 upgrade
Couldn't check for updates right now.
Try again later or run npm install -g @upstash/context7@latest manually.

# after
$ curl -I https://registry.npmjs.org   # verify reachable
$ ctx7 upgrade
Defensive patterns

Strategy: retry

Validate before calling

// Verify registry reachability before running the upgrade flow
async function registryReachable(): Promise<boolean> {
  try {
    const res = await fetch("https://registry.npmjs.org/-/ping", {
      signal: AbortSignal.timeout(5000),
    });
    return res.ok;
  } catch {
    return false;
  }
}
if (!(await registryReachable())) {
  console.error("npm registry unreachable — fix network/proxy before ctx7 upgrade");
}

Try / catch

async function checkForUpdatesSafe() {
  for (let attempt = 0; attempt < 3; attempt++) {
    const info = await checkForUpdates({ force: true });
    if (info) return info; // null means the check failed — retry with backoff
    await new Promise((r) => setTimeout(r, 2 ** attempt * 1000));
  }
  return null; // give up: surface the manual upgrade command
}

Prevention

When it happens

Trigger: `ctx7 upgrade` while offline; behind a corporate proxy that blocks registry.npmjs.org; DNS misconfiguration; npm registry outage/rate-limiting; HTTP(S)_PROXY env vars pointing at a dead proxy.

Common situations: Laptops on restrictive networks right after switching Wi-Fi; CI runners with no outbound npm access; misconfigured proxy env vars lingering in the shell; air-gapped environments.

Related errors


AI-assisted analysis of upstash/context7@5284672feb (2026-08-18). Data as JSON: /api/errors/53809d46dffde22f. Report an issue: GitHub.