BigPizzaV3/CodexPlusPlus · error
{}
Error message
{} What it means
After the enabled/paused gates, apply_dream_skin_live runs platform_identity_check on the configured codex_app_path. If the check level is DreamSkinCheckLevel::Fail, the library bails with the identity check's own message (bail!("{}", identity.message)). The error text is therefore dynamic and describes why the target app failed platform/identity verification (wrong path, not the expected app binary, unsupported platform, etc.).
Solutions
- Read the actual identity.message in the error output — it names the exact failure reason.
- Verify settings.codex_app_path points to the real, current Codex app executable.
- Re-select/refresh the app path in the manager so the identity check passes.
- Confirm your platform/OS build is supported by the Dream Skin runtime.
- Re-run apply_dream_skin_live after fixing the path/platform issue.
Example fix
// before: stale path
{"codex_app_path": "/Applications/Codex-old.app/Contents/MacOS/Codex"}
// after: current app path
{"codex_app_path": "/Applications/Codex.app/Contents/MacOS/Codex"} Defensive patterns
Strategy: try-catch
Validate before calling
let settings = SettingsStore::default().load()?;
let identity = platform_identity_check(&settings.codex_app_path);
if identity.level == DreamSkinCheckLevel::Fail {
anyhow::bail!("precheck failed: {}", identity.message);
} Type guard
fn identity_ok(level: &DreamSkinCheckLevel) -> bool {
!matches!(level, DreamSkinCheckLevel::Fail)
} Try / catch
match apply_dream_skin_live(port, helper).await {
Err(e) => eprintln!("identity/live-apply failed: {e}") /* message includes identity.message */,
ok => ok,
} Prevention
- Run platform_identity_check before live apply to get the precise failure message.
- Re-detect the Codex app path after every app update.
- Verify the codex_app_path exists and is the expected binary before configuring.
When it happens
Trigger: Calling apply_dream_skin_live when platform_identity_check(&settings.codex_app_path) returns level == DreamSkinCheckLevel::Fail — e.g. codex_app_path points to a missing, renamed, or non-Codex binary, or the platform is unsupported.
Common situations: Codex app updated/moved so the saved path no longer matches; user pointed codex_app_path at the wrong executable; running on an OS/arch the identity check rejects; version change altering app identity signatures.
Understand the failure class
Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.
Related errors
- Codex enhancements are disabled
- Dream Skin image is not managed by Codex++
- Dream Skin is not enabled
- Dream Skin is paused
- dream skin target renderer contains unresolved placeholders
AI-assisted analysis of BigPizzaV3/CodexPlusPlus@b1ed92e5e4 (2026-09-19).
Data as JSON: /api/errors/d869a179e13032ad.
Report an issue: GitHub.
Appendix: source
Thrown at crates/codex-plus-core/src/dream_skin_runtime.rs:293
live_applied,
checks,
}
}
pub async fn apply_dream_skin_live(
debug_port: u16,
helper_port: u16,
) -> anyhow::Result<DreamSkinRuntimeStatus> {
let settings = SettingsStore::default().load()?;
if !settings.enhancements_enabled || !settings.codex_app_dream_skin_enabled {
bail!("Dream Skin is not enabled");
}
if settings.codex_app_dream_skin_paused {
bail!("Dream Skin is paused");
}
let identity = platform_identity_check(&settings.codex_app_path);
if identity.level == DreamSkinCheckLevel::Fail {
bail!("{}", identity.message);
}
let target = primary_target(debug_port).await?;
let websocket = target
.web_socket_debugger_url
.as_deref()
.context("Codex renderer has no WebSocket URL")?;
let probe = crate::assets::dream_skin_live_update_probe_script();
let live_probe = crate::bridge::evaluate_script(websocket, &probe)
.await
.ok()
.and_then(|response| {
response
.pointer("/result/result/value")
.and_then(Value::as_str)
.map(str::to_string)
});
let live_signatures = live_probe.as_deref().and_then(|value| {
serde_json::from_str::<Value>(value).ok().map(|parsed| {View on GitHub (pinned to b1ed92e5e4)