windmill-labs/windmill · error
Variable ${remotePath} is currently secret and will be downg
Error message
Variable ${remotePath} is currently secret and will be downgraded to non-secret: its value will be stored in plaintext What it means
Downgrade warning during variable add/update: the remote variable is currently secret, but the pushed definition has is_secret=false, so after the update its value will be stored in plaintext on the server. Shown after the update confirmation; the operation proceeds unless the user aborts.
Source
Thrown at cli/src/commands/variable/variable.ts:301
})
) {
if (
!opts.yes &&
!(await Confirm.prompt({
message: `Variable already exist, do you want to update its value?`,
default: true,
}))
) {
return;
}
if (isSecret === false) {
const existing = await wmill.getVariable({
workspace: workspace.workspaceId,
path: remotePath,
decryptSecret: false,
});
if (existing.is_secret) {
log.warn(
colors.yellow(
`Variable ${remotePath} is currently secret and will be downgraded to non-secret: its value will be stored in plaintext`
)
);
}
}
log.info(colors.bold.yellow("Updating variable..."));
await wmill.updateVariable({
workspace: workspace.workspaceId,
path: remotePath,
alreadyEncrypted: false, // value from CLI is always plaintext
requestBody: {
value,
...(isSecret !== undefined ? { is_secret: isSecret } : {}),
...(opts.description !== undefined
? { description: opts.description }
: {}),
},View on GitHub (pinned to e474e8803c)
Solutions
- Keep the variable secret in the pushed YAML to avoid plaintext storage
- If plaintext is acceptable, no action — the warning is informational
- Rotate the value afterwards if accidental exposure is a concern
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/variable/variable.ts:301 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/1c5c8f2302113aaa.
Report an issue: GitHub.