refinedev/refine · warning · Error
Timed out while checking for updates.
Error message
Timed out while checking for updates.
What it means
refine CLI's update checker runs the package manager's 'outdated --json' command with a 25 second timeout; if the registry lookup doesn't finish in time it aborts and reports this error instead of stale results.
Source
Thrown at packages/cli/src/commands/check-updates/utils.ts:17
import type { NpmOutdatedResponse } from "@definitions/package";
import { pmCommands } from "@utils/package";
import execa from "execa";
/**
* @returns `npm outdated` command response
*/
export const getOutdatedPackageList = async () => {
const pm = "npm";
const { stdout, timedOut } = await execa(pm, pmCommands[pm].outdatedJson, {
reject: false,
timeout: 25 * 1000,
});
if (timedOut) {
throw new Error("Timed out while checking for updates.");
}
if (!stdout) return null;
return JSON.parse(stdout) as NpmOutdatedResponse | null;
};
View on GitHub (pinned to 779d52a20e)
Solutions
- Retry when the network/proxy is responsive
- Configure the correct registry/proxy for your package manager (npm config set registry / HTTPS_PROXY)
- If it blocks work, skip or disable the update check and run `npm outdated` manually
Example fix
// before (slow registry) npm config set registry https://registry.example.internal refine check-updates // after npm config set registry https://registry.npmjs.org refine check-updates
Defensive patterns
Strategy: retry
Validate before calling
npm ping # verify registry reachability before running refine check-updates
Try / catch
try { await runCheckUpdates(); } catch (e) { if (e.message.includes('Timed out')) { /* proceed without update check */ } } Prevention
- Configure proxy/registry settings for your environment
- Treat the update check as optional; don't gate builds on it
When it happens
Trigger: Slow network, offline/proxied environment, or an unresponsive npm/yarn/pnpm registry causing `npm outdated --json` to exceed 25s while running `refine check-updates` (or a command that triggers the update check).
Common situations: Corporate proxies, CI runners with restricted egress, registry mirrors being slow, or VPN conditions; large monorepos where outdated takes long.
Understand the failure class
- Timeouts: ETIMEDOUT, deadlines, and hung requests — what actually expires when a request times out.
Related errors
- Package manager not found.
- Invalid provider: ${providerId}
- ./package.json not found
- jscodeshift exited with code ${result.exitCode}
- Refine will use `./build/index.js` as default
AI-assisted analysis of refinedev/refine@779d52a20e (2026-08-27).
Data as JSON: /api/errors/c2d250da5a470661.
Report an issue: GitHub.