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
- Use the exact path string from the config (raw or expanded) as the filter
- Match the config's convention: if config says ~/src/app, pass --repo '~/src/app' (quoted so the shell does not expand it differently)
- Print the configured repos (e.g. via the plan output) and copy the path verbatim
- 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
- Quote filters so ~ stays literal when the config uses ~
- Copy repo paths verbatim from the config or plan output
- Avoid trailing slashes and symlinked spellings in filters
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
- relative repo paths are only allowed in a project config; us
- relative repo path `{path_raw}` must stay within the project
- relative repo path `{path_raw}` must name a directory inside
- must set `url`
- must set a non-empty `url`
AI-assisted analysis of jdx/mise@9dcfcaa0dc (2026-08-17).
Data as JSON: /api/errors/ce56e4402c4fa0a4.
Report an issue: GitHub.