windmill-labs/windmill · warning
Warning: ${message}
Error message
Warning: ${message} What it means
The Windmill CLI's `preCheckPermissionedAs` guard (called from `push`) detects items in the push whose `permissioned_as`/email owner would change to the current user, when the user is not an admin or member of `wm_deployers`. When the `--accept-overriding-permissioned-as-with-self` flag is set, the CLI logs the full list of affected items as a yellow `Warning: <message>` and continues the push. Without the flag it either prompts interactively or hard-fails with exit code 1.
Source
Thrown at cli/src/core/permissioned_as.ts:192
}
if (wouldChangeItems.length === 0) return;
const itemList = wouldChangeItems
.map((item) => ` - ${item.path} (current owner: ${item.currentOwner})`)
.join("\n");
const message =
`You are not an admin or member of 'wm_deployers'. The following ${wouldChangeItems.length} item(s) ` +
`will have their permissioned_as/email changed to your user (${userEmail}):\n${itemList}`;
if (acceptOverride) {
log.warn(colors.yellow(`Warning: ${message}`));
return;
}
if (isInteractive) {
log.warn(colors.yellow(message));
const proceed = await Confirm.prompt({
message:
"Do you want to proceed? (use --accept-overriding-permissioned-as-with-self to skip this prompt)",
default: false,
});
if (!proceed) {
log.info("Push cancelled.");
process.exit(0);
}
} else {
log.error(
colors.red(
`${message}\n\nUse --accept-overriding-permissioned-as-with-self to proceed anyway.`
)
);
process.exit(1);
}
}View on GitHub (pinned to e474e8803c)
Solutions
- If ownership transfer is intended, keep the flag and review the listed paths to confirm each is expected.
- If not intended, remove the flag and edit the local files to set `permissioned_as` (or the schedule/app owner email) back to the original owner before pushing.
- Push only the specific paths you own (e.g. targeted push of those files) instead of a full sync.
- Ask an admin to add you to the `wm_deployers` group if you legitimately need to manage these items.
Example fix
# before (blanks owner in YAML → becomes you on push) # no permissioned_as line in script.meta.yaml # after permissioned_as: /orig-owner@example.com
Defensive patterns
Strategy: validation
Validate before calling
// inspect what a push would re-own before running it
const userEmail = "me@example.com";
for (const f of scriptMetaFiles) {
const owner = f.match(/^permissioned_as:\s*"?([^\s"#]+)"?/m)?.[1];
if (!owner || owner === userEmail) console.warn(`${f} would be permissioned_as you after push`);
} Prevention
- Never add `--accept-overriding-permissioned-as-with-self` in shared CI without reviewing the listed items.
- Always keep an explicit `permissioned_as` (or owner email for schedules) in synced files instead of omitting it.
- Run a dry review of changed files before pushing to shared workspaces.
- Use a dedicated service account in `wm_deployers` for team-wide pushes so ownership is stable.
When it happens
Trigger: `wmill push` executed by a non-admin, non-`wm_deployers` user where one or more synced scripts/flows/schedules/apps would have their owner email rewritten to the pushing user, AND the `--accept-overriding-permissioned-as-with-self` flag is passed. The message enumerates each path and its current owner.
Common situations: A team member pulls a colleague's script (owned by the colleague or a departed employee) and pushes modifications; ownership silently transfers to them, breaking other users' access. The flag is often added in CI to keep pipelines moving.
Related errors
- Warning: You are not an admin or member of 'wm_deployers'. T
- Resource ${remotePath} uses '!inline_fileset ${dirPath}', bu
- file path must refer to a file.
- File already exists: + filePath
- File already exists: + filePath
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/2f1019c1d6a0fe04.
Report an issue: GitHub.