Hmbown/CodeWhale · error

plugin name '{name}' is already used by the {} bundle at {};

Error message

plugin name '{name}' is already used by the {} bundle at {}; choose a different name or remove that bundle first

What it means

install_inner's name-conflict check: a freshly staged plugin bundle wants a name already taken by an existing bundle (scope shown in the placeholder, with its location). The installer refuses to overwrite; the message names the choices — rename or remove the incumbent.

Source

Thrown at crates/tui/src/plugins/install/mod.rs:293

    .await
}

async fn install_inner(
    source: PluginInstallSource,
    user_plugins_dir: &Path,
    max_size: u64,
    network: &NetworkPolicy,
    update: bool,
    name_conflict: &dyn Fn(&str) -> Option<String>,
    expected_content_hash: Option<&str>,
) -> Result<PluginInstallOutcome> {
    match &source {
        PluginInstallSource::LocalPath(path) => {
            let staged = stage_local_copy(path, user_plugins_dir, max_size)?;
            verify_expected_content_hash(&staged, expected_content_hash)?;
            if let Some(conflict) = name_conflict(&staged.name) {
                let _ = fs::remove_dir_all(&staged.staged_path);
                bail!(conflict);
            }
            let canonical = path
                .canonicalize()
                .with_context(|| format!("failed to resolve {}", path.display()))?;
            finalize_install(
                staged,
                &plugin_spec_string(&source, Some(&canonical)),
                None,
                "",
                user_plugins_dir,
                update,
            )
        }
        PluginInstallSource::Remote(remote) => {
            let (bytes, url) = match fetch_tarball(remote, network, max_size).await? {
                FetchOutcome::Bytes { bytes, url } => (bytes, url),
                FetchOutcome::NeedsApproval(host) => {
                    return Ok(PluginInstallOutcome::NeedsApproval(host));

View on GitHub (pinned to 0c42157ee5)

Solutions

  1. Remove the conflicting bundle first
  2. Or install under a different plugin name
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at crates/tui/src/plugins/install/mod.rs:293 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20). Data as JSON: /api/errors/2f9165b262af3ae1. Report an issue: GitHub.