jdx/mise · error

Paranoid mode is enabled, refusing to install community-deve

Error message

Paranoid mode is enabled, refusing to install community-developed plugin

What it means

With `paranoid` settings enabled, mise refuses to install asdf plugins whose git URL is not on the official/trusted allowlist, because community plugins execute arbitrary code during install. The message is raised in ensure_installed before any code from the plugin runs.

Source

Thrown at src/plugins/asdf_plugin.rs:288

        mpr: &MultiProgressReport,
        force: bool,
        dry_run: bool,
    ) -> Result<()> {
        let settings = Settings::try_get()?;
        if !force {
            if self.is_installed() {
                return Ok(());
            }
            if !settings.yes && self.repo_url.lock().unwrap().is_none() {
                let url = self.get_repo_url(config).unwrap_or_default();
                if !registry::is_trusted_plugin(self.name(), &url) {
                    warn!(
                        "⚠️ {} is a community-developed plugin – {}",
                        style(&self.name).blue(),
                        style(url.trim_end_matches(".git")).yellow()
                    );
                    if settings.paranoid {
                        bail!(
                            "Paranoid mode is enabled, refusing to install community-developed plugin"
                        );
                    }
                    if !prompt::confirm_with_all(format!(
                        "Would you like to install {}?",
                        self.name
                    ))?
                    .is_yes()
                    {
                        Err(PluginNotInstalled(self.name.clone()))?
                    }
                }
            }
        }
        let prefix = format!("plugin:{}", style(&self.name).blue().for_stderr());
        let pr = mpr.add_with_options(&prefix, dry_run);
        if !dry_run {
            let _lock = lock_file::get(&self.plugin_path, force)?;

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Audit the plugin repository, then either disable paranoid mode (`MISE_PARANOID=0` or `mise settings paranoid=false`) or pre-approve the plugin per your org policy.
  2. Use an official/core backend for the tool instead of a community asdf plugin.
  3. If this is on a shared/CI machine, install the plugin once interactively outside paranoid mode and let mise reuse the installed plugin.

Example fix

// before (in config, with paranoid=true)
mise plugin add nightly-crystal https://github.com/someone/asdf-crystal.git
// after
MISE_PARANOID=0 mise plugin add nightly-crystal https://github.com/someone/asdf-crystal.git  # after auditing the repo
Defensive patterns

Strategy: validation

Validate before calling

// before installing in CI, fail fast if paranoid mode blocks community plugins
const paranoid = process.env.MISE_PARANOID === '1';
const isOfficial = trustedPluginUrls.includes(pluginUrl);
if (paranoid && !isOfficial) throw new Error('paranoid mode blocks community plugin ' + pluginUrl);

Try / catch

try {
  execSync(`mise plugin add ${name} ${url}`);
} catch (e) {
  if (/Paranoid mode is enabled/.test(String(e.stderr))) {
    // switch to an official backend or run an audited allowlisted install step
  }
}

Prevention

When it happens

Trigger: Installing a third-party asdf plugin (e.g. `mise plugin add <name> <community-git-url>`) while `paranoid = true` (MISE_PARANOID=1) is set; also triggered for tools requested by a project config that reference community plugins.

Common situations: Security-conscious CI environments with paranoid mode on; new machines where a project .mise.toml references a community plugin; orgs with allowlists that haven't been extended.

Understand the failure class

Background: Permission denied / not authorized / 403 Forbidden: access-control rejections when the caller lacks the required role, grant, or ownership — this error's family across 18 libraries.

Related errors


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/7e2f70e6bb271b12. Report an issue: GitHub.