denoland/deno · error
cabinet file {name} missing
Error message
cabinet file {name} missing What it means
Error "cabinet file {name} missing" thrown in denoland/deno.
Source
Thrown at cli/tools/desktop.rs:5099
folder.add_file(f.key.clone());
}
}
let cursor = std::io::Cursor::new(Vec::<u8>::new());
let mut writer = builder
.build(cursor)
.context("failed to start cabinet for .msi")?;
// Files come back in the order they were added; read each one's bytes by its
// cab name (the MSI File key) to stay robust to ordering.
let by_key: std::collections::HashMap<&str, &MsiFile> =
files.iter().map(|f| (f.key.as_str(), f)).collect();
while let Some(mut file_writer) = writer
.next_file()
.context("failed to advance cabinet writer")?
{
let name = file_writer.file_name().to_string();
let f = by_key.get(name.as_str()).ok_or_else(|| {
deno_core::anyhow::anyhow!("cabinet file {name} missing")
})?;
let data = std::fs::read(&f.abs_path).with_context(|| {
format!("failed to read {} for .msi cabinet", f.abs_path.display())
})?;
file_writer.write_all(&data)?;
}
let cursor = writer.finish().context("failed to finish cabinet")?;
Ok(cursor.into_inner())
}
/// Recursively copy a directory tree, ensuring writable permissions on the
/// destination. This is needed because source files from the Nix store are
/// read-only.
/// Strip unnecessary files from a CEF-based app bundle to reduce size.
///
/// Removes:
/// - Non-English locale packs (~47MB)
/// - SwiftShader software Vulkan renderer (~16MB, not needed on macOS with Metal)View on GitHub (pinned to 89f33cbef2)
When it happens
Trigger: Thrown at cli/tools/desktop.rs:5099 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of denoland/deno@89f33cbef2 (2026-08-16).
Data as JSON: /api/errors/fb7c107e84cac212.
Report an issue: GitHub.