{"record":{"id":"17f3040ccc9ba28a","repo":"jdx/mise","slug":"vfox-backend-plugin-plugin-name-exists-but-t","errorCode":null,"errorMessage":"vfox-backend plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed","messagePattern":"vfox-backend plugin '(.+?)' exists but '(.+?)' is not available or the plugin is not properly installed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/args/backend_arg.rs","lineNumber":337,"sourceCode":"            Ok(backend)\n        } else if let Some((plugin_name, tool_name)) = self.short.split_once(':') {\n            // Check if the plugin exists first\n            if let Some(plugin_type) = install_state::get_plugin_type(plugin_name) {\n                // Plugin exists, but the backend couldn't be created\n                // This could be due to the tool not being available or plugin not properly installed\n                match plugin_type {\n                    PluginType::Asdf => {\n                        bail!(\n                            \"asdf plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed\"\n                        );\n                    }\n                    PluginType::Vfox => {\n                        bail!(\n                            \"vfox plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed\"\n                        );\n                    }\n                    PluginType::VfoxBackend => {\n                        bail!(\n                            \"vfox-backend plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed\"\n                        );\n                    }\n                    PluginType::Package => {\n                        bail!(\"package plugin '{plugin_name}' is not a tool backend\");\n                    }\n                }\n            } else {\n                // Plugin doesn't exist\n                bail!(\"{plugin_name} is not a valid plugin name\");\n            }\n        } else {\n            // Check if the tool is in the registry but has no available backends\n            if let Some(rt) = REGISTRY.get(self.registry_short().as_str())\n                && rt\n                    .backends_for_version(self.registry_version.as_deref())\n                    .is_empty()\n                && !rt.backends.is_empty()","sourceCodeStart":319,"sourceCodeEnd":355,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/cli/args/backend_arg.rs#L319-L355","documentation":"Same family as errors 177/178 but for plugins registered as PluginType::VfoxBackend (vfox plugins wrapped as full backends). The plugin exists in install state, yet mise could not construct the backend for tool_name — the tool is not exposed by the plugin or the plugin installation is damaged.","triggerScenarios":"BackendArg::backend() sees PluginType::VfoxBackend for plugin_name and backend creation fails, e.g. the wrapped vfox-backend plugin does not register the requested tool or its metadata/scripts are missing.","commonSituations":"Requesting a tool name the vfox-backend plugin never registered; interrupted plugin install leaving partial files; version drift between the plugin and its vfox runtime.","solutions":["Reinstall the plugin: mise plugin remove <name> then mise plugin add <name>","Check the plugin registers the exact tool name requested","Update the plugin to its latest version (mise plugin update <name>)","Run mise doctor for a plugin health report"],"exampleFix":"# before\nmise use my-backend-tool@latest   # plugin exists but tool not registered\n# after\nmise plugin update my-backend-tool\nmise ls-remote my-backend-tool   # confirm the tool is listed\nmise use my-backend-tool@latest","handlingStrategy":"validation","validationCode":"# confirm the plugin registers the tool\nassert tool in registered_tools(plugin), f'{plugin} does not register {tool}'","typeGuard":null,"tryCatchPattern":"match backend {\n    Err(e) if e.to_string().contains(\"vfox-backend plugin\") =>\n        update_and_verify_plugin(plugin),\n    r => r,\n}","preventionTips":["Verify registration with ls-remote before pinning","Keep plugins updated","Avoid interrupting plugin installs"],"tags":["vfox","plugin","backend"],"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"}