sxyazi/yazi · error
process exited with status {status}
Error message
process exited with status {status} What it means
yazi-build's `run_streamed` helper spawns a subprocess (git clone/install steps) with piped output and asserts success with `ensure!(status.success(), ...)`. Any child process exiting non-zero surfaces this error, with the raw ExitStatus (code or signal) interpolated into the message.
Source
Thrown at yazi-build/build.rs:91
}
fn run_streamed(cmd: &mut Command) -> Result<()> {
let stdin = {
let input = TTY.lockin();
Stdio::from(input.try_clone()?)
};
let (stdout, stderr) = {
let mut output = TTY.lockout();
output.flush()?;
(Stdio::from(output.get_ref().try_clone()?), Stdio::from(output.get_ref().try_clone()?))
};
let status =
cmd.stdin(stdin).stdout(stdout).stderr(stderr).status().context("failed to spawn process")?;
ensure!(status.success(), "process exited with status {status}");
Ok(())
}
View on GitHub (pinned to 5f901b886b)
Solutions
- Read the captured stdout/stderr (run_streamed pipes output) for the underlying git error
- Test the failing command manually in the build environment (e.g. `git clone <url>`)
- Fix network/proxy/auth issues (set GIT_SSH_COMMAND, HTTPS_PROXY, credentials)
- Confirm the required tool (git, cargo) is installed and on PATH before building
Example fix
// before // building with no git credentials configured // after git config --global credential.helper store # or use HTTPS with a token # then retry the build
Defensive patterns
Strategy: try-catch
Validate before calling
// Pre-flight checks before building
Command::new("git").arg("--version").status().expect("git not installed");
Command::new("git").args(["ls-remote", &repo_url]).status().expect("repo unreachable"); Try / catch
match build_result {
Err(e) if e.to_string().starts_with("process exited with status") => {
eprintln!("build step failed; inspect captured stdout/stderr for the git error");
}
other => other,
} Prevention
- Verify git/network/auth in the build environment first
- Run the failing command manually to see its real error output
- Check captured output streams — run_streamed pipes them for inspection
- Ensure PATH contains git and cargo in CI containers
When it happens
Trigger: `clone_repo` or `install_repo` invokes git (or another command) that exits non-zero — failed network fetch, authentication error, missing binary, or a signal-killed child (`status.code() == None`).
Common situations: Building yazi from source behind a proxy/firewall where git fetch fails; no SSH key or credentials for the repo; git not installed or not on PATH in the build environment.
Related errors
- --target must be valid UTF-8
- Process failed
- --bin-dir is only valid for the install task
- the dist task requires --target
- `rustc --print target-libdir` failed
AI-assisted analysis of sxyazi/yazi@5f901b886b (2026-09-02).
Data as JSON: /api/errors/65e1fb7ebf6392fd.
Report an issue: GitHub.