Hmbown/CodeWhale · error

(not persisted: {err})

Error message

 (not persisted: {err})

What it means

When a reasoning-effort choice is applied from the model picker, the session-level change always takes effect; if the blocking startup-defaults persistence fails, the suffix " (not persisted: {err})" is appended to the status message. This tells the user the selection is active now but will not survive restart — a non-fatal persistence degradation.

Source

Thrown at crates/tui/src/tui/ui/apply.rs:861

    let preference_changed = app.reasoning_effort_preference != Some(effort);
    let selection_changed = effort != previous_effort || live_changed;

    if live_changed || preference_changed {
        app.reasoning_effort = effective_effort;
        app.reasoning_effort_preference = Some(effort);
    }
    if selection_changed {
        app.invalidate_route_receipts_for_reasoning_change();
        app.update_model_compaction_budget();
    }

    let persist_warning = app
        .startup_defaults
        .apply_blocking(
            crate::tui::startup_defaults::StartupDefaults::reasoning_effort(effort.as_setting()),
        )
        .err()
        .map(|err| format!(" (not persisted: {err})"));

    if live_changed {
        apply_model_and_compaction_update(
            engine_handle,
            app.compaction_config(),
            app.mode,
            app.active_route_limits,
        )
        .await;
    }

    let persisted = persist_warning.is_none();
    let mut summary = if selection_changed {
        format!(
            "Thinking: {} → {} · model {}",
            previous_effort.display_label_for_provider(app.api_provider),
            effort.display_label_for_provider(app.api_provider),
            app.model_display_label()

View on GitHub (pinned to 0c42157ee5)

Solutions

  1. Fix the underlying persist error (permissions, disk, config lock) shown after 'not persisted:'
  2. Re-apply the reasoning effort via startup defaults once persistence works
  3. Treat the session choice as valid; only restart durability is lost
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/tui/src/tui/ui/apply.rs:861 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/f1ae103d414c7739. Report an issue: GitHub.