{"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":"exception","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/533346cc374382b41ec5ff70536252b2e96e725c/src/cli/current.rs#L33-L69","documentation":"mise's `mise current <plugin>` command resolves the currently active versions for a tool backend. Before querying, it checks whether the named plugin's backend exposes a plugin and that the plugin is actually installed (e.g. an asdf/vfox plugin has been downloaded). If not, it bails instead of returning meaningless 'current version' data.","triggerScenarios":"Run `mise current <name>` (or `mise current <name>` via `one()`) where `<name>.backend()?.plugin()` returns a plugin and `plugin.is_installed()` is false — i.e. the tool is known to the registry but has never been installed via `mise install <name>`.","commonSituations":"Typo'd or uninstalled plugin name in `mise current`; fresh machine where mise.toml lists tools but `mise install` was never run; plugin removed manually from ~/.local/share/mise/plugins.","solutions":["Run `mise install <plugin>` to install the plugin (e.g. `mise install node`).","Check the plugin name with `mise ls-remote <plugin>` / `mise plugins ls` to confirm spelling and availability.","Run `mise install` with no arguments to install everything listed in mise.toml."],"exampleFix":"// before\n$ mise current nodejs   // \"Plugin nodejs is not installed\"\n// after\n$ mise install node\n$ mise current node","handlingStrategy":"validation","validationCode":"mise plugins ls | grep -qx <plugin> || mise install <plugin>","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always run `mise install` after cloning a project with a mise.toml.","Check `mise plugins ls` before querying tool-specific commands."],"tags":["cli","plugin","tool-installation"],"backgroundTag":"missing-dependency","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"}