{"record":{"id":"9724c86da8b2c5cd","repo":"jdx/mise","slug":"invalid-compose-dependency-value-expected-k","errorCode":null,"errorMessage":"invalid compose dependency '{value}': expected '<kind>:<name>'","messagePattern":"invalid compose dependency '(.+?)': expected '<kind>:<name>'","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/system/compose.rs","lineNumber":1135,"sourceCode":"    if name.is_empty()\n        || !name\n            .chars()\n            .next()\n            .is_some_and(|character| character.is_ascii_lowercase() || character.is_ascii_digit())\n        || !name.chars().all(|character| {\n            character.is_ascii_lowercase() || character.is_ascii_digit() || \"-_\".contains(character)\n        })\n    {\n        bail!(\n            \"invalid compose project_name '{name}': use lowercase letters, digits, dashes, and underscores\"\n        );\n    }\n    Ok(())\n}\n\nfn parse_dependency(value: &str) -> Result<ResourceId> {\n    let Some((kind, name)) = value.split_once(':') else {\n        bail!(\"invalid compose dependency '{value}': expected '<kind>:<name>'\");\n    };\n    if name.is_empty()\n        || !matches!(\n            kind,\n            \"package\" | \"file\" | \"directory\" | \"service\" | \"user\" | \"group\"\n        )\n    {\n        bail!(\n            \"invalid compose dependency '{value}': supported kinds are package, file, directory, service, user, and group\"\n        );\n    }\n    Ok(ResourceId::new(kind, name))\n}\n\nfn validate_values(kind: &str, values: &[String]) -> Result<()> {\n    if let Some(value) = values\n        .iter()\n        .find(|value| value.is_empty() || value.starts_with('-') || value.contains('\\0'))","sourceCodeStart":1117,"sourceCodeEnd":1153,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/system/compose.rs#L1117-L1153","documentation":"parse_dependency splits a compose dependency reference on the first ':' and found the result malformed — not a valid '<kind>:<name>' pair (empty name or invalid characters). The dependency string in the compose/system config is the input at fault.","triggerScenarios":"Specifying a dependency value like `postgres` or `./service` without a `kind:` prefix in a compose dependency list.","commonSituations":"Typos or omitting the kind prefix when declaring package/file/directory/service/user/group dependencies; copying plain names from other config formats.","solutions":["Prefix the dependency with a supported kind, e.g. `service:postgres` or `package:ripgrep`","Check the documented dependency syntax and correct the value","Verify no shell/config layer stripped the colon or quoting"],"exampleFix":"// before\ndepends = [\"postgres\"]\n// after\ndepends = [\"service:postgres\"]","handlingStrategy":"validation","validationCode":"fn valid_dependency(v: &str) -> bool {\n    match v.split_once(':') {\n        Some((k, n)) => n.non_empty_check() && matches!(k, \"package\"|\"file\"|\"directory\"|\"service\"|\"user\"|\"group\"),\n        None => false,\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always write dependencies as kind:name","Copy dependency syntax from documented examples","Validate dependency lists before writing config files"],"tags":["validation","parsing","format"],"backgroundTag":"invalid-argument-format","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"}