{"record":{"id":"6572a2c0e6ece158","repo":"jdx/mise","slug":"provider-provider-id-not-found-available-pro","errorCode":null,"errorMessage":"Provider '{provider_id}' not found.\n\nAvailable providers:\n{available}","messagePattern":"Provider '(.+?)' not found\\.\n\nAvailable providers:\n(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/deps/install.rs","lineNumber":182,"sourceCode":"            info!(\"All dependencies are up to date\");\n        }\n\n        Ok(())\n    }\n\n    fn explain_provider(\n        engine: &DepsEngine,\n        provider_id: &str,\n        effective_env: &std::collections::BTreeMap<String, String>,\n    ) -> Result<()> {\n        let Some(provider) = engine.find_provider(provider_id) else {\n            let available = engine\n                .list_providers()\n                .iter()\n                .map(|p| format!(\"  {}\", p.id()))\n                .collect::<Vec<_>>()\n                .join(\"\\n\");\n            bail!(\"Provider '{provider_id}' not found.\\n\\nAvailable providers:\\n{available}\");\n        };\n\n        let applicability = provider.applicability();\n\n        // Header\n        miseprintln!(\"Provider: {}\", provider.id());\n        miseprintln!(\"Auto: {}\", if provider.is_auto() { \"yes\" } else { \"no\" });\n\n        // Sources\n        let sources = provider.sources();\n        miseprintln!(\"Sources:\");\n        for source in &sources {\n            let exists = source.exists();\n            let marker = if exists { \"+\" } else { \"-\" };\n            miseprintln!(\"  {} {}\", marker, source.display());\n        }\n\n        // Outputs","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/cli/deps/install.rs#L164-L200","documentation":"`explain_provider` looks up the requested provider id in the dependency engine. If `engine` has no provider with that id, it bails with the offending id plus a formatted list of all available provider ids so the user can correct the name.","triggerScenarios":"Run `mise deps install <provider> --explain` where `list_providers()` contains no provider whose id equals the given `provider_id` (lookup returns None).","commonSituations":"Typo'd provider id (npm vs node, etc.); provider not enabled in this build/feature set; stale docs referencing a removed provider; running with `--list` skipped so available ids were never checked.","solutions":["Read the 'Available providers' list in the error and retry with an exact id.","Run `mise deps install --list` to enumerate provider ids.","Check whether the provider requires a mise setting or feature to be enabled."],"exampleFix":"// before\n$ mise deps install nodejs --explain  // Provider 'nodejs' not found\n// after\n$ mise deps install npm --explain","handlingStrategy":"validation","validationCode":"mise deps install --list | grep -qx \"  $provider\" || echo \"unknown provider: $provider\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Copy provider ids exactly from `mise deps install --list`.","Pin provider ids in scripts rather than typing them ad hoc."],"tags":["cli","deps","provider","not-found"],"backgroundTag":"resource-not-found","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"}