BigPizzaV3/CodexPlusPlus · error · anyhow::Error
unsupported Dream Skin package image: {other}
Error message
unsupported Dream Skin package image: {other} What it means
Validation in save_validated_dream_skin_package: the package's image_name is not one of the supported image filenames (e.g. background.webp or other known assets), so Codex++ cannot map it to a handled image type when staging the theme. The unexpected value appears in the message.
Source
Thrown at crates/codex-plus-core/src/dream_skin_library.rs:337
.context("同 ID 本地主题无法确认身份,已拒绝覆盖")?;
if existing.config.id != config.id {
bail!("同 ID 本地主题身份不一致,已拒绝覆盖");
}
}
let suffix = unique_suffix();
let staging = themes_dir.join(format!(".stage-{}-{suffix}", config.id));
std::fs::create_dir(&staging).with_context(|| {
format!(
"failed to create Dream Skin package staging directory {}",
staging.display()
)
})?;
let staged = (|| -> anyhow::Result<()> {
let image_extension = match package.image_name.as_str() {
"background.webp" => "webp",
"background.jpg" => "jpg",
"background.png" => "png",
other => bail!("unsupported Dream Skin package image: {other}"),
};
crate::settings::atomic_write(
&staging.join(format!("image.{image_extension}")),
&package.image_bytes,
)?;
crate::settings::atomic_write(
&staging.join(THEME_CONFIG_FILE),
&serde_json::to_vec_pretty(&config)?,
)?;
crate::settings::atomic_write(&staging.join("theme.css"), package.css.as_bytes())?;
crate::settings::atomic_write(&staging.join("manifest.json"), &package.manifest_bytes)?;
if let Some(license) = &package.license_bytes {
crate::settings::atomic_write(&staging.join("LICENSE.txt"), license)?;
}
Ok(())
})();
if let Err(error) = staged {
let _ = remove_known_theme_directory(&staging);View on GitHub (pinned to f2074595a2)
Solutions
- Repack the theme with a supported image filename (background.webp/png)
- Update Codex++ if the package uses a newly introduced image format
- Reject hand-edited packages with renamed image files
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/codex-plus-core/src/dream_skin_library.rs:337 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/8ab615e6e3f2f725.
Report an issue: GitHub.