{"record":{"id":"65e1fb7ebf6392fd","repo":"sxyazi/yazi","slug":"process-exited-with-status-status","errorCode":null,"errorMessage":"process exited with status {status}","messagePattern":"process exited with status (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"yazi-build/build.rs","lineNumber":91,"sourceCode":"}\n\nfn run_streamed(cmd: &mut Command) -> Result<()> {\n\tlet stdin = {\n\t\tlet input = TTY.lockin();\n\t\tStdio::from(input.try_clone()?)\n\t};\n\n\tlet (stdout, stderr) = {\n\t\tlet mut output = TTY.lockout();\n\t\toutput.flush()?;\n\n\t\t(Stdio::from(output.get_ref().try_clone()?), Stdio::from(output.get_ref().try_clone()?))\n\t};\n\n\tlet status =\n\t\tcmd.stdin(stdin).stdout(stdout).stderr(stderr).status().context(\"failed to spawn process\")?;\n\n\tensure!(status.success(), \"process exited with status {status}\");\n\tOk(())\n}\n","sourceCodeStart":73,"sourceCodeEnd":94,"githubUrl":"https://github.com/sxyazi/yazi/blob/5f901b886b14de1f17460b6e52e9de5d67f8aba9/yazi-build/build.rs#L73-L94","documentation":"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.","triggerScenarios":"`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`).","commonSituations":"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.","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"],"exampleFix":"// before\n// building with no git credentials configured\n// after\ngit config --global credential.helper store  # or use HTTPS with a token\n# then retry the build","handlingStrategy":"try-catch","validationCode":"// Pre-flight checks before building\nCommand::new(\"git\").arg(\"--version\").status().expect(\"git not installed\");\nCommand::new(\"git\").args([\"ls-remote\", &repo_url]).status().expect(\"repo unreachable\");","typeGuard":null,"tryCatchPattern":"match build_result {\n    Err(e) if e.to_string().starts_with(\"process exited with status\") => {\n        eprintln!(\"build step failed; inspect captured stdout/stderr for the git error\");\n    }\n    other => other,\n}","preventionTips":["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"],"tags":["build","subprocess","git","exit-code"],"backgroundTag":"nonzero-exit-code","analyzedSha":"5f901b886b14de1f17460b6e52e9de5d67f8aba9","analyzedAt":"2026-09-02T18:38:25.566Z","contentChangedAt":"2026-09-02T18:38:25.566Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}