jdx/mise · error
is not a sharing conflict
Error message
{} is not a sharing conflict What it means
`mise dot conflicts [--path ...]` only accepts paths that actually have a sharing conflict in the history store. If a requested path was not among the detected conflicts, the command bails saying so for that path.
Solutions
- Run `mise dot conflicts` with no path arguments to list actual sharing conflicts, then use one of the listed paths
- Re-run after the next history sync if you expect a conflict but none is detected
- Verify the exact path format used by mise (e.g. run `mise dot list` to see tracked paths)
Example fix
// before $ mise dot conflicts ~/.config/mise/dotfiles/src/gitconfig error: ... is not a sharing conflict // after $ mise dot conflicts # list conflicts first $ mise dot conflicts <listed-path>
Defensive patterns
Strategy: validation
Validate before calling
# only pass paths that conflicts reports mise dot conflicts | grep -F "$P" || echo "$P has no sharing conflict"
Try / catch
match result {
Err(e) if e.to_string().contains("is not a sharing conflict") => {
// fall back to listing all conflicts without a path arg
}
...
} Prevention
- Always list conflicts first, then select from that output
- Use the exact path format mise reports (source path, not target path)
When it happens
Trigger: Passing a path argument to `mise dot conflicts` that is not in the current conflict set (typo, already resolved, or the file was never concurrently edited from multiple machines).
Common situations: User specifies the dotfile target path instead of the tracked source path; conflict was auto-resolved before the command ran; path spelling differs (e.g. `~/.gitconfig` vs the tracked repo-relative path).
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
- : target must be absolute or start with ~/
- : target must be absolute or start with ~/
- unknown trigger ; use save, agent, or update
- a glob is required
- `--all` needs `--to
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/43d1def2433bb173.
Report an issue: GitHub.
Appendix: source
Thrown at src/cli/dotfiles/conflicts.rs:101
.iter()
.map(|path| normalize_target(path))
.collect::<Vec<_>>();
let mut selected = vec![];
for conflict in conflicts {
let Some(path) = roots
.locate(&conflict.branch_path)
.path()
.map(Path::to_path_buf)
else {
continue;
};
if requested.is_empty() || requested.contains(&path) {
selected.push((path, conflict));
}
}
for path in requested {
if !selected.iter().any(|(selected, _)| selected == &path) {
bail!("{} is not a sharing conflict", display_path(&path));
}
}
Ok(selected)
}
fn print_diff(repo: &HistoryRepo, conflict: &Conflict, path: &Path) -> Result<()> {
let local = side_file(repo, conflict.local.as_ref(), path, "local")?;
let remote = side_file(repo, conflict.remote.as_ref(), path, "remote")?;
let output = git_diff(repo, &local, &remote, path, console::colors_enabled())?;
if !output.stdout.is_empty() {
miseprint!("{}", String::from_utf8_lossy(&output.stdout))?;
}
if local.mode != remote.mode {
miseprintln!("mode: {} -> {}", local.mode, remote.mode);
}
Ok(())
}
View on GitHub (pinned to 533346cc37)