BigPizzaV3/CodexPlusPlus · error · anyhow::Error

DreamSkin 社区主题元数据无效:{}

Error message

DreamSkin 社区主题元数据无效:{}

What it means

Validation in validate_community_theme: a DreamSkin community theme entry failed metadata checks — invalid version id, unsafe/oversized text fields (theme_id/name/author/license), bad semver, zero or oversized package size, or invalid package sha256 — so the entry is rejected with its id in the message.

Source

Thrown at crates/codex-plus-core/src/dream_skin_community.rs:282

    }
    for item in items {
        validate_community_theme(item)?;
    }
    Ok(())
}

fn validate_community_theme(theme: &DreamSkinCommunityTheme) -> anyhow::Result<()> {
    validate_version_id(&theme.id)?;
    if !safe_text(&theme.theme_id, 80)
        || !safe_text(&theme.name, 120)
        || !safe_text(&theme.author_display_name, 120)
        || !safe_text(&theme.license, 80)
        || !valid_semver(&theme.version)
        || theme.package_bytes == 0
        || theme.package_bytes > PACKAGE_BYTES_LIMIT
        || !valid_sha256(&theme.package_sha256)
    {
        bail!("DreamSkin 社区主题元数据无效:{}", theme.id);
    }
    Ok(())
}

fn validate_version_id(value: &str) -> anyhow::Result<()> {
    let Some(suffix) = value.strip_prefix("ver_") else {
        bail!("DreamSkin 主题版本 ID 无效");
    };
    if !(8..=64).contains(&suffix.len())
        || !suffix
            .bytes()
            .all(|byte| byte.is_ascii_lowercase() || byte.is_ascii_digit())
    {
        bail!("DreamSkin 主题版本 ID 无效");
    }
    Ok(())
}

View on GitHub (pinned to f2074595a2)

Solutions

  1. Report/fix the theme metadata at its source in the community catalog
  2. Refresh the catalog in case of a transient bad entry
  3. Check the failing theme id in the message for the exact entry
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/codex-plus-core/src/dream_skin_community.rs:282 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/7c1a00f4b0f9eb28. Report an issue: GitHub.