windmill-labs/windmill · warning

Could not auto-fill missing lockfile entries: ${e instanceof

Error message

Could not auto-fill missing lockfile entries: ${e instanceof Error ? e.message : e}

What it means

A warning from the lockfile auto-fill step of sync. When the CLI tries to auto-generate missing dependency lockfile entries (e.g. python/pip lock resolution), an unexpected error occurred; lockfiles already recognized as Unknown/Malformed are rethrown, but any other failure is downgraded to this warning and the sync continues without the auto-filled entries.

Source

Thrown at cli/src/commands/sync/sync.ts:4198

      if (total > 0) {
        log.info(
          colors.gray(
            `Auto-filled ${total} missing lockfile entr${total === 1 ? "y" : "ies"} ` +
              `(${filled.scripts} script, ${filled.flows} flow, ${filled.apps} app) from disk.`,
          ),
        );
      }
    } catch (e) {
      // Re-throw fail-fast lockfile errors (unknown version, malformed yaml)
      // so the user sees them; only swallow soft failures from the auto-fill
      // walk itself.
      if (
        e instanceof UnknownLockVersionError ||
        e instanceof MalformedLockfileError
      ) {
        throw e;
      }
      log.warn(
        colors.yellow(
          `Could not auto-fill missing lockfile entries: ${e instanceof Error ? e.message : e}`,
        ),
      );
    }
  }

  // Skipped under --dry-run since pullSharedUi writes to the local ui/ folder.
  // An empty changeset falls through the return above and reaches here.
  if (!opts.dryRun) {
    try {
      await pullSharedUi(workspace.workspaceId, opts.keepDeleted);
    } catch (e) {
      log.warn(`Failed to pull shared UI folder: ${e}`);
    }
  }

  // Datatable migrations are part of the workspace export now, so they flow

View on GitHub (pinned to e474e8803c)

Solutions

  1. Regenerate the lockfile explicitly for the affected script (e.g. `wmill dep lock` / re-save the script with dependencies so locks are computed).
  2. Check network access to the package registry (PyPI) from the machine running the CLI; configure proxy settings if needed.
  3. Fix the dependency spec in the script/flow (conflicting or nonexistent version pins).
  4. Upgrade the CLI in case the resolver bug is fixed in a newer version; the warning message includes the underlying error text to guide diagnosis.

Example fix

// before: unreachable registry in CI
Could not auto-fill missing lockfile entries: request to https://pypi.org failed
// after: set proxy for the run
export HTTPS_PROXY=http://proxy.internal:3128
wmill sync push
Defensive patterns

Strategy: try-catch

Validate before calling

// check registry reachability and lockfile presence before syncing
const res = await fetch("https://pypi.org/simple/", { method: "HEAD" }).catch(() => null);
if (!res?.ok) throw new Error("PyPI unreachable; fix network/proxy before sync");

Try / catch

try {
  await wmill.sync.push(...);
} catch (e) {
  if (String(e).includes("Could not auto-fill missing lockfile entries")) {
    console.error("Generate locks manually (wmill dep lock / re-save script) or fix registry access:", e);
  } else throw e;
}

Prevention

When it happens

Trigger: During `wmill sync pull/push`, a script/flow has dependencies but its lockfile lacks entries; the auto-fill resolver throws something other than UnknownLockVersionError/MalformedLockfileError — e.g. network failure reaching PyPI, unresolvable dependency version, or an internal resolver crash.

Common situations: Offline or proxied CI environment blocking pypi.org; a dependency pin with no compatible resolution; corrupted requirements.txt that isn't classified as malformed; transient registry outage.

Related errors


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