{"record":{"id":"be3c6150dda25aec","repo":"Morganamilo/paru","slug":"unknown-option","errorCode":null,"errorMessage":"unknown option --{}","messagePattern":"unknown option --(.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/command_line.rs","lineNumber":373,"sourceCode":"            Arg::Long(\"nochroot\") => self.chroot = false,\n            Arg::Long(\"sign\") => {\n                self.sign = match value {\n                    Ok(k) => Sign::Key(k.to_string()),\n                    Err(_) => Sign::Yes,\n                }\n            }\n            Arg::Long(\"nokeeprepocache\") => self.keep_repo_cache = false,\n            Arg::Long(\"keeprepocache\") => self.keep_repo_cache = true,\n            Arg::Long(\"signdb\") => {\n                self.sign_db = match value {\n                    Ok(k) => Sign::Key(k.to_string()),\n                    Err(_) => Sign::Yes,\n                }\n            }\n            Arg::Long(\"nosign\") => self.sign = Sign::No,\n            Arg::Long(\"nosigndb\") => self.sign_db = Sign::No,\n            Arg::Long(a) if !arg.is_pacman_arg() && !arg.is_pacman_global() => {\n                bail!(tr!(\"unknown option --{}\", a))\n            }\n            Arg::Short(a) if !arg.is_pacman_arg() && !arg.is_pacman_global() => {\n                bail!(tr!(\"unknown option -{}\", a))\n            }\n            _ => (),\n        }\n\n        match takes_value(arg) {\n            TakesValue::No if forced => bail!(tr!(\"option {} does not allow a value\", arg)),\n            _ => (),\n        }\n\n        Ok(())\n    }\n}\n\nfn split_whitespace(s: &str) -> Vec<String> {\n    s.split_whitespace().map(|s| s.to_string()).collect()","sourceCodeStart":355,"sourceCodeEnd":391,"githubUrl":"https://github.com/Morganamilo/paru/blob/9ac3578807a87858651e81a02586ceb947686e7c/src/command_line.rs#L355-L391","documentation":"The parser encountered a long option (`--name`) that is neither a recognized pacman argument nor a pacman global argument, so `handle_arg` bails with 'unknown option --{}'. This is the catch-all arm for unrecognized long flags.","triggerScenarios":"Invoking the tool with a long flag like `--foo` or `--repo-sync` that is not in the known pacman/pacman-global sets; typos of valid flags (e.g. `--colour` instead of `--color`).","commonSituations":"Typoed flags; flags removed/renamed in newer versions of the tool; copy-pasted flags from other package managers; scripts built against an older CLI surface.","solutions":["Correct the flag spelling (check `--help`)","Remove the unrecognized flag or use the closest supported equivalent","Check the version changelog if a flag was renamed between releases"],"exampleFix":"// before\nparu --nosignature\n// after\nparu --nosigndb  // or another valid flag; check --help","handlingStrategy":"validation","validationCode":"function is_known_long_flag(flag: string, known: Set<string>): boolean {\n  return known.has(flag.replace(/^--/, ''));\n}","typeGuard":null,"tryCatchPattern":"match cli::parse(&args) {\n    Err(e) if e.to_string().starts_with(\"unknown option\") => {\n        eprintln!(\"{} — run with --help for valid options\", e);\n        std::process::exit(2);\n    }\n    Err(e) => return Err(e),\n    Ok(cmd) => cmd.run(),\n}","preventionTips":["Use shell/tab completion generated by the tool itself","Keep a validated allowlist of flags in wrapper scripts","Pin the tool version in CI and re-validate flags after upgrades"],"tags":["cli","unknown-option","argument-parsing"],"backgroundTag":"invalid-cli-argument","analyzedSha":"9ac3578807a87858651e81a02586ceb947686e7c","analyzedAt":"2026-09-12T04:57:59.861Z","contentChangedAt":"2026-09-12T04:57:59.861Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}