Hmbown/CodeWhale · error · anyhow::Error
Failed to update setting: invalid {key} '{value}'. Expected
Error message
Failed to update setting: invalid {key} '{value}'. Expected 0 or a positive integer. What it means
Generic parse_usize_setting failure: value.trim().parse::<usize>() returned Err for the named key — the input is not a bare non-negative integer. Used by numeric settings in Settings::set; the key in the message identifies which numeric setting failed to parse.
Source
Thrown at crates/tui/src/settings.rs:2574
"on" | "true" | "yes" | "1" | "enabled" => Ok(true),
"off" | "false" | "no" | "0" | "disabled" => Ok(false),
_ => {
anyhow::bail!("Failed to parse boolean '{value}': expected on/off, true/false, yes/no.")
}
}
}
fn default_thinking_preview_lines() -> usize {
2
}
fn default_true() -> bool {
true
}
fn parse_usize_setting(key: &str, value: &str) -> Result<usize> {
value.trim().parse::<usize>().map_err(|_| {
anyhow::anyhow!(
"Failed to update setting: invalid {key} '{value}'. Expected 0 or a positive integer."
)
})
}
fn parse_u16_range(key: &str, value: &str, min: u16, max: u16) -> Result<u16> {
let parsed = value
.trim()
.parse::<u16>()
.map_err(|_| anyhow::anyhow!("Invalid {key} '{value}': expected {min}-{max}"))?;
if !(min..=max).contains(&parsed) {
anyhow::bail!("Invalid {key} '{value}': expected {min}-{max}");
}
Ok(parsed)
}
fn parse_percent_setting(key: &str, value: &str) -> Result<f64> {
let trimmed = value.trim().trim_end_matches('%').trim();View on GitHub (pinned to 0c42157ee5)
Solutions
- Enter a decimal non-negative integer with no sign, units, or separators
- Very large values overflow usize — pick a smaller number
- Re-check the setting's documented range before retrying
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/tui/src/settings.rs:2574 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20).
Data as JSON: /api/errors/a19fadd2e91900b8.
Report an issue: GitHub.