windmill-labs/windmill · info

Skipping latest-version check: ${e instanceof Error ? e.mess

Error message

Skipping latest-version check: ${e instanceof Error ? e.message : String(e)}

What it means

During `wmill help` handling, main.ts calls checkVersionSafe, which fetches the latest wmill version from npmjs to warn about outdated CLIs. If that network check throws, the CLI logs this warning (including the underlying error message) and continues to show help. No functionality is lost beyond the outdated-version hint.

Source

Thrown at cli/src/main.ts:178

    "Specify headers to use for all requests. e.g: \"HEADERS='h1: v1, h2: v2'\""
  )
  .version(VERSION)
  .versionOption(false)
  // Override the default help option action so that a failure to contact
  // the npm registry (e.g. offline / firewalled environment) does not
  // prevent help from being displayed. Cliffy's default action awaits
  // `checkVersion` before `showHelp`, which aborts the whole command if
  // the fetch to registry.npmjs.org fails.
  .helpOption("-h, --help", "Show this help.", {
    action: async function () {
      const self = this as any;
      const long = self
        .getRawArgs()
        .includes(`--${self.getHelpOption()?.name}`);
      try {
        await checkVersionSafe(self);
      } catch (e) {
        log.warn(
          `Skipping latest-version check: ${
            e instanceof Error ? e.message : String(e)
          }`
        );
      }
      self.showHelp({ long });
      self.exit();
    },
  })
  .command("init", init)
  .command("refresh", refresh)
  .command("app", app)
  .command("flow", flow)
  .command("script", script)
  .command("workspace", workspace)
  .command("resource", resource)
  .command("resource-type", resourceType)
  .command("user", user)

View on GitHub (pinned to e474e8803c)

Solutions

  1. Ensure network egress to registry.npmjs.org from the machine running wmill.
  2. Configure HTTPS_PROXY/HTTP_PROXY so the CLI can reach npmjs through the corporate proxy.
  3. Disable or bypass the version check if your environment intentionally has no internet (e.g. WINDMILL_NO_VERSION_CHECK / equivalent env flag if supported).
  4. Ignore the warning — help still displays and the CLI is fully usable.

Example fix

// before (no egress in CI)
wmill --help
// Skipping latest-version check: Unable to connect

// after: route through the corporate proxy
export HTTPS_PROXY=http://proxy.corp.internal:3128
wmill --help
Defensive patterns

Strategy: fallback

Validate before calling

// probe npm reachability before commands whose logs must stay clean
try {
  await fetch("https://registry.npmjs.org/wmill/latest", { signal: AbortSignal.timeout(3000) });
} catch {
  console.log("npmjs unreachable; version check will be skipped");
}

Try / catch

try {
  await $`wmill --help`;
} catch (e) {
  // help still prints after the warning; only surface real usage errors
  if (!String(e).includes("latest-version")) throw e;
}

Prevention

When it happens

Trigger: Running `wmill --help` (or any help invocation) while checkVersionSafe throws — no network access, npmjs unreachable, DNS failure, proxy blocking registry.npmjs.org, or TLS issues.

Common situations: Air-gapped or firewalled corporate environments; CI runners without egress to npmjs; broken corporate TLS-intercepting proxies; DNS misconfiguration.

Related errors


AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03). Data as JSON: /api/errors/d67d2bd37bbcdfa4. Report an issue: GitHub.