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
- Fix the underlying persist error (permissions, disk, config lock) shown after 'not persisted:'
- Re-apply the reasoning effort via startup defaults once persistence works
- 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.