{"record":{"id":"e228a6d27ff801cf","repo":"jdx/mise","slug":"unknown-setting","errorCode":null,"errorMessage":"Unknown setting: {}","messagePattern":"Unknown setting: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/settings/get.rs","lineNumber":49,"sourceCode":"                .unwrap_or_default();\n            Settings::partial_as_dict(&partial)?\n        } else {\n            Settings::get().as_dict()?\n        };\n        let mut value = toml::Value::Table(settings);\n        let mut key = Some(self.setting.as_str());\n        while let Some(k) = key {\n            let k = k\n                .split_once('.')\n                .map(|(a, b)| (a, Some(b)))\n                .unwrap_or((k, None));\n            if let Some(v) = value.as_table().and_then(|t| t.get(k.0)) {\n                key = k.1;\n                value = v.clone()\n            } else if is_known_setting(&self.setting) {\n                bail!(\"Setting [{}] is not set\", self.setting);\n            } else {\n                bail!(\"Unknown setting: {}\", self.setting);\n            }\n        }\n        match value {\n            toml::Value::String(s) => miseprintln!(\"{s}\"),\n            value => miseprintln!(\"{value}\"),\n        }\n\n        Ok(())\n    }\n}\n\nfn is_known_setting(key: &str) -> bool {\n    if SETTINGS_META.contains_key(key) {\n        return true;\n    }\n    let prefix = format!(\"{key}.\");\n    SETTINGS_META.keys().any(|k| k.starts_with(&prefix))\n}","sourceCodeStart":31,"sourceCodeEnd":67,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/cli/settings/get.rs#L31-L67","documentation":"`mise settings get <key>` validates the requested key against the known settings metadata (`is_known_setting`). If the dotted path cannot be resolved AND the name is not a recognized setting, mise reports the key as unknown. This catches typos and settings that were removed or renamed in the mise version in use.","triggerScenarios":"Running `mise settings get <name>` where <name> (or a path segment) is not in the settings registry — typo'd keys, deprecated/renamed settings, or keys from a newer mise version than the installed one.","commonSituations":"Copying a settings key from docs for a different mise version; typos like `node.compile` vs `node_compile`; referencing a plugin-specific setting that no longer exists.","solutions":["List valid keys with `mise settings ls` and pick the correct name.","Check `mise settings get --help` / docs for your mise version — the key may be renamed or version-gated.","Upgrade mise if the setting exists only in newer releases."],"exampleFix":"// before\nmise settings get node_compyle\n// Unknown setting: node_compyle\n\n// after\nmise settings ls   # find correct key\nmise settings get node_compile","handlingStrategy":"validation","validationCode":"mise settings ls | grep -qx \"${key}\" || { echo \"unknown setting: ${key}\" >&2; exit 2; }","typeGuard":null,"tryCatchPattern":"value=$(mise settings get \"$key\") || { echo \"invalid key $key — run mise settings ls\" >&2; exit 2; }","preventionTips":["Copy setting names from `mise settings ls`, not from memory","Verify keys against docs for your installed mise version","Upgrade mise when adopting settings from newer release notes"],"tags":["cli","settings","configuration","typo"],"backgroundTag":"invalid-config-value","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}