pulumi/pulumi · error
unknown setting name: %s
Error message
unknown setting name: %s
What it means
`pulumi esc env get-settings` takes an optional setting name argument which must match a name registered in the settings registry (e.g. "deletion-protected"). If the provided name is not found in the registry, the command fails with this error rather than querying the API.
Source
Thrown at pkg/cmd/esc/cli/env_settings_get.go:82
if len(args) == 0 {
if format == outputJSON {
all := map[string]any{}
for _, setting := range registry.Settings {
all[setting.KebabName()] = setting.GetValue(settings)
}
return writeJSON(env.esc.stdout, all)
}
for _, setting := range registry.Settings {
fmt.Fprintf(env.esc.stdout, "%s %v\n", setting.KebabName(), setting.GetValue(settings))
}
return nil
}
rawSettingName := args[0]
setting, ok := registry.GetSetting(rawSettingName)
if !ok {
return fmt.Errorf("unknown setting name: %s", rawSettingName)
}
value := setting.GetValue(settings)
if format == outputJSON {
return writeJSON(env.esc.stdout, map[string]any{setting.KebabName(): value})
}
fmt.Fprintln(env.esc.stdout, value)
return nil
},
}
addOutputFlag(cmd, &output)
return cmd
}
View on GitHub (pinned to 793f7b2e16)
Solutions
- Use the exact kebab-case name: `pulumi esc env get-settings my-env deletion-protected`
- Run without a setting name (`pulumi esc env get-settings my-env`) to list all settings and see valid names
- Check `pulumi esc env set-settings --help` for the list of supported setting names
Example fix
// before $ pulumi esc env get-settings my-env deletionProtection // after $ pulumi esc env get-settings my-env deletion-protected
Defensive patterns
Strategy: validation
Validate before calling
const KNOWN_SETTINGS = ["deletion-protected"];
if (!KNOWN_SETTINGS.includes(settingName)) {
throw new Error(`unknown setting "${settingName}"; valid: ${KNOWN_SETTINGS.join(", ")}`);
} Type guard
const isKnownSetting = (name, registry) => typeof name === "string" && registry.some((s) => s.kebabName === name);
Prevention
- Use kebab-case setting names exactly as shown in `--help`
- Run get-settings without a name first to enumerate valid settings
- Avoid camelCase/snake_case variants of setting names
When it happens
Trigger: Running `pulumi esc env get-settings <env> <name>` where <name> is not a registered setting — typos like "deletionProtection", "deletion_protected", or a name that exists only conceptually but is not in the registry.
Common situations: Guessing setting names from API docs instead of the CLI's kebab-case registry names; using camelCase or snake_case variants of "deletion-protected".
Related errors
- unknown setting name: %s
- invalid value for %s: %s (expected true or false)
- the settings command does not accept versions
- the settings command does not accept versions
- expected a setting name and value
AI-assisted analysis of pulumi/pulumi@793f7b2e16 (2026-08-31).
Data as JSON: /api/errors/b6f7e03d72dc04ac.
Report an issue: GitHub.