Morganamilo/paru · warning · Status

1

1

Error message

Status: {}

What it means

Status is paru's top-level exit-code error type; Status::err(n) wraps an integer exit code in a Result::Err whose Display renders 'Status: {}'. This is the canonical constructor: any code path that needs to abort paru with a specific nonzero exit code flows through here. It is not a crash — paru exits with that code after printing the message.

Solutions

  1. Read the exit code and surrounding output to identify the underlying failed step (pacman, review prompt, build).
  2. Re-run and accept the interactive prompt if you declined it.
  3. Fix the underlying pacman error (conflicts, missing repo, locked db) before retrying.
Defensive patterns

Strategy: try-catch

Try / catch

run paru; capture exit code; treat nonzero as the failing step's status and inspect stderr for the root cause

Prevention

When it happens

Trigger: Any internal code path calling Status::err(code) — e.g. after pacman subprocess failures, user declining prompts, or build failures — bubbling up to main and terminating the process with that exit status.

Common situations: Pacman returning nonzero during a transaction; user answering 'no' to a proceed prompt; scripts wrapping paru and inspecting its exit code.

Related errors


AI-assisted analysis of Morganamilo/paru@9ac3578807 (2026-09-12). Data as JSON: /api/errors/622a2bd299525423. Report an issue: GitHub.

Appendix: source

Thrown at src/install.rs:51

use aur_depends::{Actions, Base, Conflict, DepMissing, RepoPackage};
use log::debug;
use raur::Cache;
use srcinfo::{ArchVecs, Srcinfo};
use tr::tr;

#[derive(Copy, Clone, Debug)]
pub struct Status(pub i32);

impl std::fmt::Display for Status {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "Status: {}", self.0)
    }
}

impl std::error::Error for Status {}

impl Status {
    pub fn err(n: i32) -> Result<()> {
        bail!(Status(n))
    }
}

struct Installer {
    refresh: usize,
    sysupgrade: usize,
    install_targets: bool,
    done_something: bool,
    ran_pacman: bool,
    upgrades: Upgrades,
    srcinfos: HashMap<String, Srcinfo>,
    remove_make: Vec<String>,
    conflicts: HashSet<String>,
    failed: Vec<Base>,
    chroot: Chroot,
    deps: Vec<String>,
    exp: Vec<String>,

View on GitHub (pinned to 9ac3578807)