Morganamilo/paru · error · Status
{pacman exit code}
{pacman exit code}
Error message
Status: {} What it means
After building AUR packages, build_cleanup checks the result; if packages failed to build it bails with a message listing them, and if the recorded return code is nonzero it wraps it via Status::err(ret), producing 'Status: <pacman exit code>'. This propagates the makepkg/pacman failure exit code as paru's own exit status.
Solutions
- Read the build log above the error to find the failing package and the makepkg error.
- Clean the build cache for the package (paru -S --clean or remove ~/.cache/paru/clone/<pkg>) and retry.
- Update paru and system packages first (paru -Syu) — stale rebuilds often fix it.
- Skip persistently broken packages or pin an older commit of the PKGBUILD.
Example fix
// before paru -S brokenpkg # build fails -> Status: 2 // after paru -Sca && paru -S brokenpkg # clean build, retry
Defensive patterns
Strategy: try-catch
Validate before calling
paru -Si <pkg> # confirm package exists and looks maintained before building
Try / catch
on nonzero exit after build, run with --clean (paru -S --clean <pkg>) and retry once before reporting
Prevention
- Keep base-devel installed and system updated
- Clean clone/build caches for packages that fail after upgrades
- Check comments on the AUR page for known build breakage
When it happens
Trigger: resolve_targets -> build_cleanup after an AUR package build fails: makepkg errors (missing deps, checksum failure, compile error), or the post-build install returning nonzero.
Common situations: Out-of-date PKGBUILDs after upstream changes; missing base-devel or makedepends; architecture-specific build failures; corrupted sources cached in ~/.cache/paru.
Related errors
- packages failed to build
- package list does not match srcinfo
- can't build , deps not satisfied
- duplicate PKGBUILD
- {}: {}: {}
AI-assisted analysis of Morganamilo/paru@9ac3578807 (2026-09-12).
Data as JSON: /api/errors/55ea5055b2bbadf3.
Report an issue: GitHub.
Appendix: source
Thrown at src/install.rs:455
if let Err(err) = clean_untracked(config, &path) {
print_error(config.color.error, err);
ret = 1;
}
}
}
if !self.failed.is_empty() {
let failed = self
.failed
.iter()
.map(|f| f.to_string())
.collect::<Vec<_>>();
bail!(tr!("packages failed to build: {}", failed.join(" ")));
}
if ret != 0 {
Status::err(ret)
} else {
Ok(())
}
}
fn debug_paths(
&mut self,
config: &Config,
base: &mut Base,
pkgdest: &HashMap<String, String>,
) -> Result<HashMap<String, String>> {
let mut debug_paths = HashMap::new();
if config.install_debug {
for dest in pkgdest.values() {
let file = dest.rsplit('/').next().unwrap();
match base {View on GitHub (pinned to 9ac3578807)