{"record":{"id":"ed741844bd9d45e7","repo":"jdx/mise","slug":"invalid-compose-dependency-value-supported-ki","errorCode":null,"errorMessage":"invalid compose dependency '{value}': supported kinds are package, file, directory, service, user, and group","messagePattern":"invalid compose dependency '(.+?)': supported kinds are package, file, directory, service, user, and group","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/system/compose.rs","lineNumber":1143,"sourceCode":"    {\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'))\n    {\n        bail!(\"invalid compose {kind} value '{value}'\");\n    }\n    Ok(())\n}\n\nfn validate_command(kind: &str, command: &[String]) -> Result<()> {\n    if command","sourceCodeStart":1125,"sourceCodeEnd":1161,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/system/compose.rs#L1125-L1161","documentation":"parse_dependency accepts only the kinds package, file, directory, service, user, and group after the colon. If the kind prefix is unrecognized, or the name after the colon is empty, this error is thrown.","triggerScenarios":"A dependency like 'container:api', 'volume:data', 'service:', or any unsupported prefix is passed to compose dependency parsing; also a bare trailing colon with empty name.","commonSituations":"Users guess kind names from Docker Compose terms (container, volume, network) that mise does not support; truncation leaves a trailing colon.","solutions":["Replace the kind with one of: package, file, directory, service, user, group","Provide a non-empty name after the colon","Check mise docs for the supported compose dependency kinds"],"exampleFix":"// before\nvalue = \"container:api\"\n// after\nvalue = \"service:api\"","handlingStrategy":"validation","validationCode":"const KINDS: [&str; 6] = [\"package\",\"file\",\"directory\",\"service\",\"user\",\"group\"];\nfn valid_dependency(v: &str) -> bool {\n    match v.split_once(':') { Some((k, n)) => !n.is_empty() && KINDS.contains(&k), None => false }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep a snippet of valid kinds handy when editing config","Never leave an empty name after the colon","Map docker-compose concepts to the closest supported mise kind"],"tags":["validation","config","compose","enum"],"backgroundTag":"invalid-enum-value","analyzedSha":"afd2eddd3a50c16190efc1c7e94404b48f72af57","analyzedAt":"2026-09-09T01:38:25.179Z","contentChangedAt":"2026-09-09T01:38:25.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}