GitoxideLabs/gitoxide · error
One or more errors occurred - checkout is incomplete
Error message
One or more errors occurred - checkout is incomplete: {} What it means
Thrown at the end of an exclusive index checkout when one or more errors occurred during the checkout process. The individual error `messages` were accumulated during the operation and are joined into this final bail, signalling that the checkout is incomplete and should not be treated as successful.
Solutions
- Read the joined `messages` in the error to identify which paths failed and why
- Fix the underlying cause (permissions, disk space, failing filters) and re-run the checkout into a clean destination
- Disable or fix problematic content filters/drivers that delay path processing
- Retry the checkout after resolving; verify completeness afterwards
Example fix
// before gix repo checkout-exclusive --destination ./wt # fails with checkout incomplete // after # fix the reported path issue, then: rm -rf ./wt gix repo checkout-exclusive --destination ./wt
Defensive patterns
Strategy: try-catch
Try / catch
if let Err(e) = checkout_exclusive(/* args */) {
// aggregated messages are in the Display of the error
for msg in e.to_string().split(", ") {
eprintln!("failed: {msg}");
}
} Prevention
- Ensure filters/drivers are functioning before checkout
- Check disk space and permissions preemptively
- Re-run checkout into a clean directory after failures
When it happens
Trigger: Running `checkout_exclusive` when the underlying checkout encounters per-path errors (e.g. delayed filter/checkout paths that were unprocessed, IO problems writing files) which are collected into `messages`.
Common situations: Checkout interrupted by IO errors; git-filter (clean/smudge) or driver processes failing or being delayed and not completing; filesystem issues like permissions or full disks during worktree materialization.
Understand the failure class
Background: "git command failed": what it means when a tool shells out to git and git exits non-zero — this error's family across 21 libraries.
Related errors
- Refusing to checkout index into existing directory
- One or more errors occurred - checkout is incomplete
- the current checkout has a pending rebase; time-travel to…
- could not inspect a reference before rebasing
- is checked out in another worktree
AI-assisted analysis of GitoxideLabs/gitoxide@e73179060b (2026-09-08).
Data as JSON: /api/errors/96aa966babc3616b.
Report an issue: GitHub.
Appendix: source
Thrown at gitoxide-core/src/index/checkout.rs:167
messages.push(format!(
"A delayed process provided us with {} paths we never sent to it",
delayed_paths_unknown.len()
));
for unknown in delayed_paths_unknown {
writeln!(err, "{unknown}: unknown").ok();
}
}
if !delayed_paths_unprocessed.is_empty() {
messages.push(format!(
"A delayed process forgot to process {} paths",
delayed_paths_unprocessed.len()
));
for unprocessed in delayed_paths_unprocessed {
writeln!(err, "{unprocessed}: unprocessed and forgotten").ok();
}
}
if !messages.is_empty() {
bail!(
"One or more errors occurred - checkout is incomplete: {}",
messages.join(", ")
);
}
Ok(())
}
#[derive(Clone)]
struct EmptyOrDb<Find> {
empty_files: bool,
db: Find,
}
impl<Find> gix::objs::Find for EmptyOrDb<Find>
where
Find: gix::objs::Find,
{
fn try_find<'a>(&self, id: &gix::oid, buf: &'a mut Vec<u8>) -> Result<Option<gix::objs::Data<'a>>, Error> {View on GitHub (pinned to e73179060b)