BigPizzaV3/CodexPlusPlus · error · anyhow::Error
DreamSkin 主题包身份与审核元数据不一致
Error message
DreamSkin 主题包身份与审核元数据不一致
What it means
After the package passes zip validation, its manifest's theme_id and version must equal the reviewed metadata's theme_id and version. The bytes are intact but belong to a different theme or version than the metadata describes - a gallery-side consistency error.
Source
Thrown at crates/codex-plus-core/src/dream_skin_community.rs:179
metadata.package_bytes,
"application/zip",
)
.await?;
if package.len() != metadata.package_bytes {
bail!("DreamSkin 主题包实际大小与审核元数据不一致");
}
let actual_sha = format!("{:x}", Sha256::digest(&package));
if !actual_sha.eq_ignore_ascii_case(&metadata.package_sha256) {
bail!("DreamSkin 主题包 SHA-256 与审核元数据不一致");
}
let validated = crate::dream_skin_package::validate_and_read_package(
&package,
if cfg!(windows) { "windows" } else { "macos" },
)?;
if validated.manifest.theme_id != metadata.theme_id
|| validated.manifest.version != metadata.version
{
bail!("DreamSkin 主题包身份与审核元数据不一致");
}
crate::dream_skin_library::save_validated_dream_skin_package(state_dir, &validated)
}
pub fn import_theme_package(
state_dir: &Path,
archive_path: &Path,
) -> anyhow::Result<DreamSkinThemeSummary> {
let metadata = std::fs::symlink_metadata(archive_path)
.with_context(|| format!("无法读取主题包:{}", archive_path.display()))?;
if !metadata.file_type().is_file()
|| metadata.file_type().is_symlink()
|| metadata.len() == 0
|| metadata.len() as usize > PACKAGE_BYTES_LIMIT
{
bail!("主题包必须是 32 MiB 以内的普通 ZIP 文件");
}
let bytes = std::fs::read(archive_path)View on GitHub (pinned to f2074595a2)
Solutions
- Refresh the catalog and retry - transient metadata or CDN skew usually resolves
- A persistent mismatch is a gallery data bug: report the theme id and version
- Do not manually import the downloaded zip; its provenance is broken
Defensive patterns
Strategy: try-catch
Try / catch
Catch '主题包身份与审核元数据不一致', refresh the catalog, retry once; on repeat, surface it as a gallery-side inconsistency for the theme maintainer and stop.
Prevention
- Install only from freshly fetched catalog entries
- Report identity mismatches - they indicate gallery data problems, not client misuse
When it happens
Trigger: The download URL for one version serving another version's zip; crossed metadata rows after a re-publish; an author reusing a download path across themes.
Common situations: Server or CDN routing misconfiguration; gallery mid-migration data; reused version ids.
Related errors
- DreamSkin 主题版本与请求不一致
- DreamSkin 主题包 SHA-256 与审核元数据不一致
- 该主题是旧格式,只支持在线预览或手动下载
- DreamSkin 主题包实际大小与审核元数据不一致
- 主题包必须是 32 MiB 以内的普通 ZIP 文件
AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23).
Data as JSON: /api/errors/34a88cc7323e6e2f.
Report an issue: GitHub.