Hmbown/CodeWhale · error · anyhow::Error

Failed to update setting: invalid composer vim mode '{value}

Error message

Failed to update setting: invalid composer vim mode '{value}'. Expected: normal, vim.

What it means

Settings update validation for the composer vim-mode key: the normalized value is neither vim nor normal. The guard runs before the flag is stored so the composer cannot end up in an undefined input mode.

Source

Thrown at crates/tui/src/settings.rs:1376

            "composer_density" | "composer" => {
                let normalized = normalize_composer_density(value);
                if !["compact", "comfortable", "spacious"].contains(&normalized) {
                    anyhow::bail!(
                        "Failed to update setting: invalid composer density '{value}'. Expected: compact, comfortable, spacious."
                    );
                }
                self.composer_density = normalized.to_string();
            }
            "composer_border" | "border" => {
                self.composer_border = parse_bool(value)?;
            }
            "composer_multiline_mode" | "multiline_mode" | "multiline" => {
                self.composer_multiline_mode = parse_bool(value)?;
            }
            "composer_vim_mode" | "vim_mode" | "vim" => {
                let normalized = value.trim().to_ascii_lowercase();
                if !["vim", "normal"].contains(&normalized.as_str()) {
                    anyhow::bail!(
                        "Failed to update setting: invalid composer vim mode '{value}'. Expected: normal, vim."
                    );
                }
                self.composer_vim_mode = normalized;
            }
            "transcript_spacing" | "spacing" => {
                let normalized = normalize_transcript_spacing(value);
                if !["compact", "comfortable", "spacious"].contains(&normalized) {
                    anyhow::bail!(
                        "Failed to update setting: invalid transcript spacing '{value}'. Expected: compact, comfortable, spacious."
                    );
                }
                self.transcript_spacing = normalized.to_string();
            }
            "launch_screen" | "launch" => {
                self.launch_screen = parse_bool(value)?;
            }
            "status_indicator" | "indicator" => {

View on GitHub (pinned to 0c42157ee5)

Solutions

  1. Set vim mode to vim or normal
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/tui/src/settings.rs:1376 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/31f592766f7e037e. Report an issue: GitHub.