BigPizzaV3/CodexPlusPlus · error · anyhow::Error
DreamSkin 主题版本与请求不一致
Error message
DreamSkin 主题版本与请求不一致
What it means
install_community_theme fetched GET /v1/themes/{version_id}; the returned metadata's id must equal the requested version_id. A mismatch means the server resolved the request to a different theme version than asked for - a republished or renamed version, or catalog/CDN skew.
Source
Thrown at crates/codex-plus-core/src/dream_skin_community.rs:151
pub async fn install_community_theme(
state_dir: &Path,
version_id: &str,
) -> anyhow::Result<DreamSkinThemeSummary> {
validate_version_id(version_id)?;
let client = community_http_client(Duration::from_secs(120))?;
let metadata_url = format!("{COMMUNITY_API_ORIGIN}/v1/themes/{version_id}");
let metadata_bytes = download_limited(
&client,
&metadata_url,
METADATA_BYTES_LIMIT,
"application/json",
)
.await?;
let metadata: DreamSkinCommunityTheme =
serde_json::from_slice(&metadata_bytes).context("DreamSkin 主题元数据不是有效 JSON")?;
validate_community_theme(&metadata)?;
if metadata.id != version_id {
bail!("DreamSkin 主题版本与请求不一致");
}
if !metadata.apply_compatible {
bail!("该主题是旧格式,只支持在线预览或手动下载");
}
let download_url = format!("{COMMUNITY_API_ORIGIN}/v1/themes/{version_id}/download");
let package = download_limited(
&client,
&download_url,
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) {View on GitHub (pinned to f2074595a2)
Solutions
- Reload the community catalog (bypass the cache) and retry with the fresh id
- If it still mismatches, the gallery's metadata for that id is inconsistent - report it
- Install using ids taken from the same catalog fetch you are browsing
Defensive patterns
Strategy: retry
Try / catch
Catch the '主题版本与请求不一致' error, invalidate the cached catalog, re-fetch the theme list, and retry once with the id now associated with the theme; if the retry hits the same error, surface the mismatch instead of looping.
Prevention
- Install from a freshly fetched catalog, not a cached one
- Treat id drift as a signal to refresh, not as user error
When it happens
Trigger: Reinstalling a version id from a stale cached catalog after the author republished the theme; metadata and detail endpoints serving inconsistent records; hand-crafted version ids.
Common situations: A locally cached catalog.json lagging behind gallery re-publishes; old share links pointing at superseded versions.
Related errors
- 该主题是旧格式,只支持在线预览或手动下载
- DreamSkin 主题包身份与审核元数据不一致
- DreamSkin 主题包实际大小与审核元数据不一致
- DreamSkin 主题包 SHA-256 与审核元数据不一致
- 主题包必须是 32 MiB 以内的普通 ZIP 文件
AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23).
Data as JSON: /api/errors/98f8969915d8d154.
Report an issue: GitHub.