windmill-labs/windmill · error
Unknown workspace dependencies file format: ${path}. Valid f
Error message
Unknown workspace dependencies file format: ${path}. Valid files: package.json, requirements.in, composer.json, go.mod, modules.json What it means
`pushWorkspaceDependencies` maps the dependencies file path to a (language, filename) pair via `workspaceDependenciesPathToLanguageAndFilename`. If the path doesn't match one of the supported files — package.json, requirements.in, composer.json, go.mod, modules.json — it throws this error listing the valid formats.
Source
Thrown at cli/src/commands/dependencies/dependencies.ts:49
);
}
const command = new Command()
.alias("deps")
.description("workspace dependencies related commands")
.command("push", "Push workspace dependencies from a local file")
.arguments("<file_path:string>")
.action(push as any);
export async function pushWorkspaceDependencies(
workspace: string,
path: string,
_befObj: any,
newDependenciesContent: string,
): Promise<void> {
const res = workspaceDependenciesPathToLanguageAndFilename(path);
if (!res) {
throw new Error(
`Unknown workspace dependencies file format: ${path}. ` +
`Valid files: package.json, requirements.in, composer.json, go.mod, modules.json`
);
}
const { language, name } = res;
const displayName = name
? `named dependencies "${name}"`
: `workspace default dependencies`;
// Fetch remote workspace dependencies and compare content directly
try {
const remoteDeps = await wmill.getLatestWorkspaceDependencies({
workspace,
language,
name,
});View on GitHub (pinned to e474e8803c)
Solutions
- Rename/convert to a supported file: package.json, requirements.in, composer.json, go.mod, or modules.json.
- For Python, generate requirements.in (pip-tools style) and push that.
- If it's a lockfile, push the manifest file it derives from instead.
Example fix
// before wmill dependency push requirements.txt // after wmill dependency push requirements.in
Defensive patterns
Strategy: validation
Validate before calling
const SUPPORTED = ['package.json','requirements.in','composer.json','go.mod','modules.json'];
if (!SUPPORTED.includes(path.basename(path_))) throw new Error(`unsupported deps file: ${path_}`); Type guard
null
Try / catch
try { await pushWorkspaceDependencies(file, ...) } catch (e) { if (String(e).includes('Unknown workspace dependencies file format')) convertToSupportedFormat(file); else throw e; } Prevention
- Only push the five supported filenames
- Generate requirements.in with pip-compile for Python projects
- Push manifests, not lockfiles
- Map project type -> supported file in your deploy scripts
When it happens
Trigger: Calling `wmill dependency push` (or the underlying pushWorkspaceDependencies) with e.g. requirements.txt, Pipfile, pyproject.toml, yarn.lock, or any non-standard filename that Windmill cannot map to a language.
Common situations: Python projects using requirements.txt instead of requirements.in; Node monorepos passing a lockfile; monorepo subdirectory package.json with an unusual name like package.client.json; typos in the filename.
Related errors
- Dependency generation failed: ${queueResponse.status} ${queu
- Failed to poll dependencies job ${jobId}: ${e?.message ?? e}
- Invalid migration name '${name}': use only letters, digits,
- File not found: ${filePath}
- Cannot push flow ${remotePath}: step(s) reference non-worksp
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/cc49dc12fc1370c6.
Report an issue: GitHub.