windmill-labs/windmill · warning
Skipping unrecognized workspace dependencies file: ${k}
Error message
Skipping unrecognized workspace dependencies file: ${k} What it means
A warning emitted while comparing remote dependency files during sync diff. A remote path under `dependencies/` exists that the CLI cannot map to a known dependency file type/language via workspaceDependenciesPathToLanguageAndFilename, so it is skipped instead of being added as a change.
Source
Thrown at cli/src/commands/sync/sync.ts:2784
throw error;
}
}
}
const codebaseChanges: Record<string, string> = {};
for (let [k, v] of Object.entries(m1)) {
const isScriptMetadata =
k.endsWith(".script.yaml") || k.endsWith(".script.json");
const skipMetadata = skips.skipScriptsMetadata && isScriptMetadata;
if (m2[k] === undefined) {
if (skipMetadata) {
continue;
}
if (k.startsWith("dependencies/")) {
if (!workspaceDependenciesPathToLanguageAndFilename(k)) {
log.warn(`Skipping unrecognized workspace dependencies file: ${k}`);
continue;
}
log.info(`Adding workspace dependencies file: ${k}`);
}
changes.push({ name: "added", path: k, content: v });
} else {
if (m2[k] == v) {
continue;
} else if (k.endsWith(".json") && !isWorkspaceDependencies(k)) {
let parsedV, parsedM2;
try {
parsedV = JSON.parse(v);
} catch (error) {
log.error(
`Failed to parse new JSON content for comparison at path: ${k}`,
);
throw error;
}View on GitHub (pinned to e474e8803c)
Solutions
- Upgrade the CLI (`npm i -g windmill-cli` / latest version) so it recognizes the dependency file format produced by your server version.
- Move the unrecognized file out of the `dependencies/` folder if it isn't a real dependency lockfile.
- Verify the path with `wmill ws file list` or the UI to confirm what the file is; delete it if stale.
- If it's a legitimate supported lockfile, check its filename matches the expected convention (language + requirements/lock filename).
Example fix
// before: stray file remote dependencies/notes.txt -> skipped warning // after: delete it or move it out of dependencies/ via UI, or upgrade CLI to match server version
Defensive patterns
Strategy: validation
Validate before calling
const KNOWN = /^(dependencies\/)(python|nodejs|go|deno|bash|ruby|php|nu)\//; // match supported layout
if (k.startsWith("dependencies/") && !workspaceDependenciesPathToLanguageAndFilename(k)) {
console.warn(`Cleaning or upgrading for: ${k}`);
} Type guard
function isRecognizedDepsPath(p: string): boolean {
return workspaceDependenciesPathToLanguageAndFilename(p) !== undefined;
} Try / catch
try {
await wmill.sync.pull(...);
} catch (e) {
console.warn("Some dependency files were skipped; upgrade the CLI or move stray files out of dependencies/", e);
} Prevention
- Keep CLI and server versions in lockstep (or within supported range).
- Don't hand-place files under dependencies/ via the UI.
- Document the expected dependencies/ layout for the team.
- Upgrade the CLI when the server adds a new dependency-file format.
When it happens
Trigger: The remote workspace contains a file under `dependencies/` whose filename/layout doesn't match any supported dependency lockfile format (e.g. a manually placed file, or a lockfile format from a newer/older Windmill version).
Common situations: Someone uploaded a custom file into the dependencies folder via the UI; a Windmill version mismatch where the server produces a dependency file the CLI version doesn't recognize; typo'd path placed under dependencies/.
Related errors
- Unknown workspace dependencies file format: ${change.path}
- Could not auto-fill missing lockfile entries: ${e instanceof
- ⚠ server-side lock generation FAILED for ${f.path} — the dep
- Dependency generation failed: ${queueResponse.status} ${queu
- Failed to poll dependencies job ${jobId}: ${e?.message ?? e}
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/7678763222b79baf.
Report an issue: GitHub.