BigPizzaV3/CodexPlusPlus · error

主题市场缓存超过大小限制

Error message

主题市场缓存超过大小限制

What it means

Size-limit guard in read_cached_manifest: the on-disk market cache file is larger than the allowed cap, so it is not even parsed. An oversized cache indicates corruption or tampering; the cache should be discarded and refetched.

Source

Thrown at crates/codex-plus-core/src/dream_skin_market.rs:294

        bytes.extend_from_slice(&chunk);
    }
    if bytes.is_empty() {
        bail!("下载内容为空");
    }
    Ok(bytes)
}

fn cache_manifest(state_dir: &Path, manifest: &DreamSkinMarketManifest) -> anyhow::Result<()> {
    let bytes = serde_json::to_vec_pretty(manifest)?;
    crate::settings::atomic_write(&state_dir.join(MARKET_CACHE_FILE), &bytes)
}

fn read_cached_manifest(state_dir: &Path) -> anyhow::Result<DreamSkinMarketManifest> {
    let path = state_dir.join(MARKET_CACHE_FILE);
    let metadata = std::fs::metadata(&path)
        .with_context(|| format!("主题市场缓存不存在:{}", path.display()))?;
    if metadata.len() > MARKET_INDEX_LIMIT as u64 {
        bail!("主题市场缓存超过大小限制");
    }
    let mut manifest: DreamSkinMarketManifest =
        serde_json::from_slice(&std::fs::read(&path)?).context("主题市场缓存不是有效 JSON")?;
    validate_manifest(&mut manifest)?;
    Ok(manifest)
}

fn read_install_records(state_dir: &Path) -> anyhow::Result<MarketInstallRecords> {
    let path = state_dir.join(MARKET_INSTALLS_FILE);
    if !path.is_file() {
        return Ok(MarketInstallRecords {
            schema_version: market_schema_version(),
            themes: BTreeMap::new(),
        });
    }
    let records: MarketInstallRecords = serde_json::from_slice(&std::fs::read(path)?)?;
    if records.schema_version != market_schema_version() {
        bail!("不支持的主题市场安装记录版本");

View on GitHub (pinned to f2074595a2)

Solutions

  1. Delete the market cache file so the next load fetches a fresh manifest
  2. Check disk for corruption or unexpected writes to the cache path
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/codex-plus-core/src/dream_skin_market.rs:294 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/2bb3ac23942da785. Report an issue: GitHub.