BigPizzaV3/CodexPlusPlus · error
plugin marketplaces should serialize
Error message
plugin marketplaces should serialize
What it means
injection_script_with_settings serializes the local plugin marketplace list (local_plugin_marketplaces()) into window.__CODEX_PLUS_PLUGIN_MARKETPLACES__; this expect-style error fires on serde_json failure. The list is plain metadata, so failure signals an internal invariant violation such as a non-string map key.
Source
Thrown at crates/codex-plus-core/src/assets.rs:418
let dream_skin_theme = &settings.codex_app_dream_skin_theme_config;
let dream_skin_target_runtime = dream_skin_target_runtime_script(settings, false);
let plugin_marketplaces = local_plugin_marketplaces();
let paste_fix = paste_fix_enabled_config(settings);
let force_chinese_locale = force_chinese_locale_config(settings);
let fast_startup = fast_startup_config(settings);
let hide_official_usage_alert = hide_official_usage_alert_config(settings);
let stepwise_runtime = if settings.codex_app_stepwise_enabled {
stepwise_script()
} else {
""
};
format!(
"window.__CODEX_SESSION_DELETE_HELPER__ = {};\nwindow.__CODEX_PLUS_VERSION__ = {};\nwindow.__CODEX_PLUS_BUILD__ = {};\nwindow.__CODEX_PLUS_IMAGE_OVERLAY__ = {};\nwindow.__CODEX_PLUS_PLUGIN_MARKETPLACES__ = {};\nwindow.__CODEX_PLUS_EXTERNAL_DREAM_SKIN_RUNTIME__ = true;\nwindow.__CODEX_PLUS_DREAM_SKIN_PLATFORM__ = {};\nwindow.__CODEX_PLUS_DREAM_SKIN_REVISION__ = {};\nwindow.__CODEX_PLUS_DREAM_SKIN_ART__ = {};\nwindow.__CODEX_PLUS_DREAM_SKIN_ART_SIGNATURE__ = {};\nwindow.__CODEX_PLUS_DREAM_SKIN_THEME__ = {};\nwindow.__CODEX_PLUS_PASTE_FIX__ = {};\nwindow.__CODEX_PLUS_FORCE_CHINESE_LOCALE__ = {};\nwindow.__CODEX_PLUS_FAST_STARTUP__ = {};\nwindow.__CODEX_PLUS_HIDE_OFFICIAL_USAGE_ALERT__ = {};\n{}\n{}\n{}",
serde_json::to_string(&helper_url).expect("helper URL should serialize"),
serde_json::to_string(crate::version::VERSION).expect("version should serialize"),
serde_json::to_string(DIAGNOSTIC_BUILD_ID).expect("build id should serialize"),
serde_json::to_string(&image_overlay).expect("image overlay config should serialize"),
serde_json::to_string(&plugin_marketplaces).expect("plugin marketplaces should serialize"),
serde_json::to_string(dream_skin_platform()).expect("dream skin platform should serialize"),
serde_json::to_string(DREAM_SKIN_RENDERER_REVISION)
.expect("dream skin renderer revision should serialize"),
serde_json::to_string(&dream_skin_art).expect("dream skin art should serialize"),
serde_json::to_string(&dream_skin_art_signature)
.expect("dream skin art signature should serialize"),
serde_json::to_string(dream_skin_theme).expect("dream skin theme should serialize"),
serde_json::to_string(&paste_fix).expect("paste fix config should serialize"),
serde_json::to_string(&force_chinese_locale)
.expect("force Chinese locale config should serialize"),
serde_json::to_string(&fast_startup).expect("fast startup config should serialize"),
serde_json::to_string(&hide_official_usage_alert)
.expect("usage alert config should serialize"),
renderer_script(),
stepwise_runtime,
dream_skin_target_runtime,
)
}View on GitHub (pinned to f2074595a2)
Solutions
- Inspect marketplace entries for non-string JSON keys
- Check recent changes to local_plugin_marketplaces
- Report as a bug; expected infallible
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/codex-plus-core/src/assets.rs:418 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/bacc76b2a9d037cc.
Report an issue: GitHub.