BigPizzaV3/CodexPlusPlus · error
下载内容为空
Error message
下载内容为空
What it means
Validation guard at the end of download_limited: the download completed with zero bytes. An empty body means the server returned no data for the requested asset (deleted, empty, or truncated response), so the caller cannot proceed.
Source
Thrown at crates/codex-plus-core/src/dream_skin_market.rs:279
.error_for_status()
.with_context(|| format!("服务器返回错误状态:{url}"))?;
if response
.content_length()
.is_some_and(|size| size > limit as u64)
{
bail!("下载内容超过 {} 字节限制", limit);
}
let mut stream = response.bytes_stream();
let mut bytes = Vec::new();
while let Some(chunk) = stream.next().await {
let chunk = chunk.context("读取下载内容失败")?;
if bytes.len().saturating_add(chunk.len()) > limit {
bail!("下载内容超过 {} 字节限制", limit);
}
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")?;View on GitHub (pinned to f2074595a2)
Solutions
- Retry the download later
- Verify the asset exists on the market server
- Check for server-side issues or a bad asset path
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at crates/codex-plus-core/src/dream_skin_market.rs:279 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/98919524a3b9c0eb.
Report an issue: GitHub.