{"record":{"id":"4d1061a6b75664a2","repo":"jdx/mise","slug":"plugin-ba-is-not-installed","errorCode":null,"errorMessage":"Plugin {ba} is not installed","messagePattern":"Plugin (.+?) is not installed","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/current.rs","lineNumber":51,"sourceCode":"    )\n)]\npub(crate) struct Current {\n    /// Plugin to show versions of\n    /// e.g.: ruby, node, cargo:eza, npm:prettier, etc.\n    #[usage()]\n    plugin: Option<BackendArg>,\n}\n\nimpl Current {\n    pub(crate) async fn run(self) -> Result<()> {\n        let config = Config::get().await?;\n        let ts = ToolsetBuilder::new().build(&config).await?;\n        match &self.plugin {\n            Some(ba) => {\n                if let Some(plugin) = ba.backend()?.plugin()\n                    && !plugin.is_installed()\n                {\n                    bail!(\"Plugin {ba} is not installed\");\n                }\n                self.one(ts, ba.backend()?.as_ref()).await\n            }\n            None => self.all(ts).await,\n        }\n    }\n\n    async fn one(&self, ts: Toolset, tool: &dyn Backend) -> Result<()> {\n        if let Some(plugin) = tool.plugin()\n            && !plugin.is_installed()\n        {\n            warn!(\"Plugin {} is not installed\", tool.id());\n            return Ok(());\n        }\n        match ts\n            .list_versions_by_plugin()\n            .into_iter()\n            .find(|(p, _)| p.id() == tool.id())","sourceCodeStart":33,"sourceCodeEnd":69,"githubUrl":"https://github.com/jdx/mise/blob/afd2eddd3a50c16190efc1c7e94404b48f72af57/src/cli/current.rs#L33-L69","documentation":"`mise current` with a plugin argument resolves the backend and checks whether its plugin is installed before printing the current version. When the backend exists but its plugin reports `is_installed() == false`, mise cannot determine a 'current' version and bails with 'Plugin {ba} is not installed'.","triggerScenarios":"Running `mise current <tool>` (e.g. `mise current node`) where the tool's plugin/core backend has no installed version on this machine.","commonSituations":"Fresh machine or CI container where the tool was never installed, switching mise data directories, or referencing a tool that only exists in another project's config.","solutions":["Install the tool first: `mise install <tool>` or `mise use <tool>@<version>`","Check installed tools with `mise ls` to confirm the plugin is present","If the plugin should be installed, verify MISE_DATA_DIR points at the right directory"],"exampleFix":"// before\nmise current node\n// error: Plugin node is not installed\n// after\nmise install node && mise current node","handlingStrategy":"validation","validationCode":"mise ls <tool> >/dev/null 2>&1 || { echo \"tool not installed\"; mise install <tool>; }","typeGuard":null,"tryCatchPattern":"if ! mise ls <tool> >/dev/null 2>&1; then\n  mise install <tool>\nfi\nmise current <tool>","preventionTips":["Run `mise install` after cloning a project to install configured tools","Check `mise ls` before scripting against specific tools","Verify MISE_DATA_DIR is consistent between environments"],"tags":["cli","plugin","toolset"],"backgroundTag":"missing-dependency","analyzedSha":"afd2eddd3a50c16190efc1c7e94404b48f72af57","analyzedAt":"2026-09-09T01:38:25.179Z","contentChangedAt":"2026-09-09T01:38:25.179Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}