BigPizzaV3/CodexPlusPlus · error
dream skin target theme should serialize
Error message
dream skin target theme should serialize
What it means
dream_skin_target_assets maps a theme target to its engine tuple and then serializes the theme config with serde_json, treating failure as unreachable via this expect-style error. It fires only if serialization of the theme value fails, which for the internal theme types indicates a broken invariant (e.g. a non-string map key) rather than bad user input.
Source
Thrown at crates/codex-plus-core/src/assets.rs:117
"codex-snow" => ("snow", CODEX_SNOW_RENDERER, CODEX_SNOW_CSS),
"glass-vision" => ("glass-vision", GLASS_VISION_RENDERER, GLASS_VISION_CSS),
value if uses_cidala_target_engine(value) => {
("cidala-tiger", CIDALA_TARGET_RENDERER, CIDALA_TARGET_CSS)
}
_ => ("dream-skin", DREAM_TARGET_RENDERER, DREAM_TARGET_CSS),
}
}
fn dream_skin_target_runtime_script(settings: &BackendSettings, include_art: bool) -> String {
if !settings.codex_app_dream_skin_enabled || settings.codex_app_dream_skin_paused {
return String::new();
}
let (engine, renderer, base_css) = dream_skin_target_assets(settings);
let managed_css = managed_dream_skin_css(settings);
let css = format!("{base_css}\n{managed_css}");
let theme = serde_json::to_string(&settings.codex_app_dream_skin_theme_config)
.expect("dream skin target theme should serialize");
let style_revision = dream_skin_content_signature(css.as_bytes());
let payload_revision =
dream_skin_target_payload_signature(settings, engine, &style_revision, &theme);
let mut payload = renderer
.replace("__DREAM_CSS_JSON__", &serde_json::to_string(&css).unwrap())
.replace("__DREAM_ART_JSON__", "window.__CODEX_PLUS_DREAM_SKIN_ART__")
.replace(
"__DREAM_THEME_JSON__",
"window.__CODEX_PLUS_DREAM_SKIN_THEME__",
)
.replace(
"__DREAM_VERSION_JSON__",
&serde_json::to_string("2.1.0-snow.1").unwrap(),
)
.replace(
"__GLASS_VISION_CSS_JSON__",
&serde_json::to_string(&css).unwrap(),
)View on GitHub (pinned to f2074595a2)
Solutions
- Inspect the theme config value for non-serializable content
- Check for recent changes to the theme data structures
- Report as a bug; this path is expected to be infallible
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/codex-plus-core/src/assets.rs:117 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23).
Data as JSON: /api/errors/bd119358509c3e56.
Report an issue: GitHub.