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

  1. Read the captured stdout/stderr (run_streamed pipes output) for the underlying git error
  2. Test the failing command manually in the build environment (e.g. `git clone <url>`)
  3. Fix network/proxy/auth issues (set GIT_SSH_COMMAND, HTTPS_PROXY, credentials)
  4. 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

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


AI-assisted analysis of sxyazi/yazi@5f901b886b (2026-09-02). Data as JSON: /api/errors/65e1fb7ebf6392fd. Report an issue: GitHub.