jdx/mise · error

no configured repo matched path: {filter}

Error message

no configured repo matched path: {filter}

What it means

filter_repos (src/cli/bootstrap.rs:3484) validates every repo/path filter against the configured RepoRequests: a filter must equal either repo.path_raw (the literal configured string) or repo.path (its replace_path/tilde-expanded form), otherwise mise bails instead of silently operating on zero repos.

Source

Thrown at src/cli/bootstrap.rs:3484

        let repos = filter_repos(system::repos_from_config(&config), &self.paths)?;
        system::repos::exec(&repos, &self.command, self.dry_run, self.continue_on_error)
    }
}

fn filter_repos(
    repos: Vec<system::repos::RepoRequest>,
    filters: &[String],
) -> Result<Vec<system::repos::RepoRequest>> {
    if filters.is_empty() {
        return Ok(repos);
    }
    for filter in filters {
        let expanded = crate::file::replace_path(filter);
        if !repos
            .iter()
            .any(|repo| repo.path_raw == *filter || repo.path == expanded)
        {
            eyre::bail!("no configured repo matched path: {filter}");
        }
    }
    Ok(repos
        .into_iter()
        .filter(|repo| {
            filters.iter().any(|filter| {
                repo.path_raw == *filter || repo.path == crate::file::replace_path(filter)
            })
        })
        .collect())
}

impl BootstrapReposStatus {
    async fn run(self) -> Result<()> {
        let config = Config::get().await?;
        let repos = system::repos_from_config(&config);
        let mut any_missing = false;
        let mut rows: Vec<Vec<String>> = vec![];

View on GitHub (pinned to 9dcfcaa0dc)

Solutions

  1. Use the exact path string from the config (raw or expanded) as the filter
  2. Match the config's convention: if config says ~/src/app, pass --repo '~/src/app' (quoted so the shell does not expand it differently)
  3. Print the configured repos (e.g. via the plan output) and copy the path verbatim
  4. Drop the filter entirely to operate on all configured repos

Example fix

# before: config has '~/src/app'
mise bootstrap dev --repo /home/me/src/app/
# Error: no configured repo matched path: /home/me/src/app/

# after
mise bootstrap dev --repo '~/src/app'
Defensive patterns

Strategy: validation

Validate before calling

# bash: ensure the filter matches a configured repo path before running
grep -F "$FILTER" mise.toml >/dev/null 2>&1 || { echo "no configured repo matches: $FILTER" >&2; exit 1; }

Prevention

When it happens

Trigger: 'mise bootstrap <part> --repo /wrong/path'; a filter differing from the configured path by a trailing slash, symlink resolution, ~ vs $HOME expansion, or case; a path that exists locally but is not among the configured repos.

Common situations: Scripts hardcoding absolute paths while config uses '~/src/app'; moving the project; paths copy-pasted from shell completion that normalize differently.

Related errors


AI-assisted analysis of jdx/mise@9dcfcaa0dc (2026-08-17). Data as JSON: /api/errors/ce56e4402c4fa0a4. Report an issue: GitHub.