Kuberwastaken/claurst · error
Unknown option
Error message
Unknown option: {} What it means
The catch-all arm of run_upgrade's match: any argument that is not one of the recognized flags (`-h`/`--help`, `-v`/`--version`, `--force`/`-f`) is rejected. It fires on typos (`--forc`), on unsupported long/short forms, and on stray positional arguments — the upgrade command takes no positional parameters, so any unrecognized token is invalid input. A generic validation guard in the CLI arg parser, raised before any network or filesystem work begins.
Solutions
- Check spelling against `claurst upgrade --help`
- Non-flag arguments are treated as versions; prefix versions are rejected, so pass a plain version like 1.2.3
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src-rust/crates/cli/src/upgrade.rs:36 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Kuberwastaken/claurst@b0637c97ec (2026-09-10).
Data as JSON: /api/errors/1d0b23d46775ef03.
Report an issue: GitHub.
Appendix: source
Thrown at src-rust/crates/cli/src/upgrade.rs:36
pub async fn run_upgrade(args: &[String]) -> Result<()> {
// -------- arg parsing --------
let mut requested_version: Option<String> = None;
let mut force = false;
let mut iter = args.iter();
while let Some(arg) = iter.next() {
match arg.as_str() {
"-h" | "--help" => {
print_help();
return Ok(());
}
"-v" | "--version" => {
requested_version = iter.next().cloned();
if requested_version.is_none() {
bail!("--version requires an argument");
}
}
"--force" | "-f" => force = true,
unknown => bail!("Unknown option: {}", unknown),
}
}
let current_version = env!("CARGO_PKG_VERSION").to_string();
println!("Current version: {}", current_version);
// -------- detect target --------
let target = detect_target()?;
println!("Detected target: {}", target);
// -------- resolve target version --------
let target_version = if let Some(v) = requested_version {
v.trim_start_matches('v').to_string()
} else {
fetch_latest_version().await?
};
println!("Target version: {}", target_version);
View on GitHub (pinned to b0637c97ec)