jdx/mise · error
vfox plugin ' ' exists but ' ' is not available or the…
Error message
vfox plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed What it means
Same diagnostic as the asdf variant but for vfox plugins: the plugin is registered as PluginType::Vfox, yet backend construction failed because the tool is unavailable or the plugin is broken/incomplete. vfox plugins are Lua-based, so a missing/broken plugin script commonly triggers this.
Solutions
- Reinstall the vfox plugin: mise plugin remove <name> && mise plugin add vfox:<name>
- Check the plugin directory contains required Lua files (manifest.lua, hooks) and is readable
- Verify the plugin exposes the tool name you requested
- Run mise doctor and check vfox plugin logs
Example fix
# before (incomplete vfox plugin) mise use vfox:myplugin@1.0 # after mise plugin remove myplugin mise plugin add vfox:myplugin mise use myplugin@1.0
Defensive patterns
Strategy: validation
Validate before calling
import os
pt = get_plugin_type(plugin)
if pt == 'vfox':
assert (plugin_dir / 'manifest.lua').exists(), f'vfox plugin {plugin} incomplete' Try / catch
match backend {
Err(e) if e.to_string().contains("vfox plugin") =>
reinstall_vfox_plugin(plugin),
r => r,
} Prevention
- Complete plugin installs before use
- Check required Lua files exist
- Run mise doctor periodically
When it happens
Trigger: BackendArg::backend() resolves plugin_type to PluginType::Vfox but creating the vfox backend for tool_name fails — e.g. plugin directory lacks required Lua hooks or the plugin cannot list the requested tool.
Common situations: vfox plugin partially downloaded (missing manifest.lua/hooks.lua); tool name typo relative to what the plugin registers; corrupted plugin cache after an interrupted install.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- vfox-backend plugin ' ' exists but ' ' is not available or…
- asdf plugin ' ' exists but ' ' is not available or the…
- Impossible to find at least two unused byte codes in this…
- package plugin ' ' collides with a built-in package manager
- package plugin ' ' is not a tool backend
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/43249cc9c92b7934.
Report an issue: GitHub.
Appendix: source
Thrown at src/cli/args/backend_arg.rs:332
// bail!("{self} not found in mise tool registry");
// }
// })?;
// Ok(backend.clone())
if let Some(backend) = backend::get(self) {
Ok(backend)
} else if let Some((plugin_name, tool_name)) = self.short.split_once(':') {
// Check if the plugin exists first
if let Some(plugin_type) = install_state::get_plugin_type(plugin_name) {
// Plugin exists, but the backend couldn't be created
// This could be due to the tool not being available or plugin not properly installed
match plugin_type {
PluginType::Asdf => {
bail!(
"asdf plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed"
);
}
PluginType::Vfox => {
bail!(
"vfox plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed"
);
}
PluginType::VfoxBackend => {
bail!(
"vfox-backend plugin '{plugin_name}' exists but '{tool_name}' is not available or the plugin is not properly installed"
);
}
PluginType::Package => {
bail!("package plugin '{plugin_name}' is not a tool backend");
}
}
} else {
// Plugin doesn't exist
bail!("{plugin_name} is not a valid plugin name");
}
} else {
// Check if the tool is in the registry but has no available backendsView on GitHub (pinned to 533346cc37)