{"record":{"id":"53caf2d5a0b1925d","repo":"jdx/mise","slug":"remote-mise-environment-cannot-contain-a-comma-e","errorCode":null,"errorMessage":"remote mise environment cannot contain a comma: {env}","messagePattern":"remote mise environment cannot contain a comma: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/system/remote.rs","lineNumber":394,"sourceCode":"                bail!(\n                    \"remote host '{}' cannot combine install_mise with remote_mise or bootstrap_command, which already provide mise on the host\",\n                    self.name\n                );\n            }\n            validate_install_mise_path(install_mise).wrap_err_with(|| {\n                format!(\"remote host '{}' has an invalid install_mise\", self.name)\n            })?;\n        }\n        for option in &self.ssh_options {\n            validate_value(\"SSH option\", option)?;\n        }\n        for exclude in &self.exclude {\n            validate_value(\"archive exclude\", exclude)?;\n        }\n        for env in &self.mise_env {\n            validate_value(\"mise environment\", env)?;\n            if env.contains(',') {\n                bail!(\"remote mise environment cannot contain a comma: {env}\");\n            }\n        }\n        if let Some(remote_mise) = &self.remote_mise {\n            validate_remote_executable(remote_mise)?;\n        }\n        if self\n            .bootstrap_command\n            .as_ref()\n            .is_some_and(|command| command.contains('\\0'))\n        {\n            bail!(\"remote host '{}' bootstrap command contains NUL\", self.name);\n        }\n        Ok(())\n    }\n}\n\npub(crate) async fn run(\n    host: &RemoteHost,","sourceCodeStart":376,"sourceCodeEnd":412,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/system/remote.rs#L376-L412","documentation":"Each mise_env entry is passed as a single KEY=VALUE token; values containing commas cannot be represented in the remote environment serialization, so validate_with_source rejects any mise_env value containing a comma after the general validate_value check passes.","triggerScenarios":"A remote host entry has a mise_env item like `FEATURES=a,b,c`; validate() or apply_overrides() iterate mise_env and bail on the comma check.","commonSituations":"Setting comma-separated list env vars (CARGO_FEATURES, RUSTFLAGS-like lists, tool whitelists); building the env var from a joined list with ',' separator.","solutions":["Split into multiple mise_env entries where the target tool supports repeated keys.","Use a separator the remote tool accepts (e.g. spaces or colons) instead of commas.","Escape/transform the value so commas aren't needed, or set it via a bootstrap/scripted mechanism."],"exampleFix":"// before\nmise_env = [\"FEATURES=a,b,c\"]\n// after\nmise_env = [\"FEATURES=a b c\"]","handlingStrategy":"validation","validationCode":"function assertMiseEnv(envList) {\n  for (const e of envList || []) {\n    if (e.includes(',')) throw new Error(`remote mise environment cannot contain a comma: ${e}`);\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Join list-valued env vars with spaces or the tool's accepted separator, never commas.","Split comma-separated values into multiple entries when the target supports repeats.","Lint remote host env entries for ',' before commit."],"tags":["remote","environment","configuration","validation"],"backgroundTag":"invalid-env-var-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"}