BigPizzaV3/CodexPlusPlus · error · anyhow::Error

DreamSkin 社区主题数量超过限制

Error message

DreamSkin 社区主题数量超过限制

What it means

Validation guard in validate_catalog: the fetched DreamSkin community catalog contains more than CATALOG_LIMIT themes, exceeding the hard cap designed to bound memory/UI load, so the catalog is rejected wholesale.

Source

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

    Ok(Some(version_id))
}

pub fn clear_pending_community_link() -> anyhow::Result<()> {
    let path = pending_link_path();
    match std::fs::remove_file(path) {
        Ok(()) => Ok(()),
        Err(error) if error.kind() == std::io::ErrorKind::NotFound => Ok(()),
        Err(error) => Err(error.into()),
    }
}

fn pending_link_path() -> std::path::PathBuf {
    crate::paths::default_app_state_dir().join(PENDING_LINK_FILE)
}

fn validate_catalog(items: &[DreamSkinCommunityTheme]) -> anyhow::Result<()> {
    if items.len() > CATALOG_LIMIT {
        bail!("DreamSkin 社区主题数量超过限制");
    }
    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)
    {

View on GitHub (pinned to f2074595a2)

Solutions

  1. Verify the community service is not returning a bloated/malicious catalog
  2. Retry later if the server-side catalog is temporarily oversized
  3. Update Codex++ if the official catalog legitimately grew past the limit
Defensive patterns

Strategy: validation

When it happens

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