denoland/deno · error
unsupported archive format: {name}
Error message
unsupported archive format: {name} What it means
Thrown by the LAUFEY archive extractor when the archive filename ends in neither `.tar.gz` nor `.zip`, so no extraction branch applies. The name comes from the tool's own laufey_archive_name for the current platform/target, so seeing this error means the internal archive naming and the extractor disagree — normally a version skew or upstream release-layout change, not something the CLI flags control.
Source
Thrown at cli/tools/desktop.rs:2321
std::fs::create_dir_all(parent)?;
}
let mut out = std::fs::File::create(&dest_path)?;
std::io::copy(&mut entry, &mut out)?;
#[cfg(unix)]
{
use std::os::unix::fs::PermissionsExt;
// Mask to 0o755 / 0o644 — same policy as the tar branch.
// setuid/setgid/sticky bits are dropped; world-writable bits too.
let mode = entry.unix_mode().unwrap_or(0o644);
let safe = if mode & 0o111 != 0 { 0o755 } else { 0o644 };
let _ = std::fs::set_permissions(
&dest_path,
std::fs::Permissions::from_mode(safe),
);
}
}
} else {
bail!("unsupported archive format: {name}");
}
Ok(())
}
/// Resolve the backend binary path inside an extracted archive directory.
fn locate_backend_binary(
dir: &Path,
backend: &str,
target: &str,
) -> Option<PathBuf> {
let is_windows = target.contains("windows");
let is_macos = target.contains("apple-darwin");
match backend {
"cef" if is_macos => {
let p = dir.join("laufey.app/Contents/MacOS/laufey");
p.exists().then_some(p)
}
"webview" if is_macos => {View on GitHub (pinned to f7822238ca)
Solutions
- Update to the latest Deno release where naming and extractor are kept in sync.
- If on a custom build, align the archive name with a supported extension (.tar.gz or .zip) or extend the extractor.
- Clear the LAUFEY cache so no stale/renamed files interfere, and report the mismatch to the deno maintainers if a released binary hits it.
Defensive patterns
Strategy: fallback
Try / catch
# Detect and fall back to a stable toolchain set +e; OUT="$(deno desktop main.ts 2>&1)"; RC=$?; set -e if grep -q "unsupported archive format" <<<"$OUT"; then echo "archive/extractor skew — switching to stable deno" >&2 dvm use stable && deno desktop main.ts else exit $RC fi
Prevention
- Use released Deno builds for desktop work; canary/self-built binaries can skew archive naming vs. extractor support.
- Do not mix LAUFEY caches between Deno versions — clear the cache on upgrade.
- Report the mismatch (archive name + deno version) upstream when a released binary hits it.
When it happens
Trigger: A Deno version whose laufey_archive_name emits a new extension (e.g. `.tar.xz` or `.tar.zst`) while this extractor only handles `.tar.gz`/`.zip`; a custom/patched build where the archive name constant was changed; a cache directory holding a renamed file that the locator then passes to the extractor.
Common situations: Using a bleeding-edge or locally built deno binary after the laufey release layout changed; mixing binaries/caches between Deno versions.
Related errors
- could not find '{backend}' backend binary inside {}
- could not find '{backend}' .app bundle inside {} (backend ma
- Unsupported archive type: '{ext}'
- LAUFEY backend exited with status: {}
- checksum mismatch for {archive} (downloaded from {url})\n e
AI-assisted analysis of denoland/deno@f7822238ca (2026-08-20).
Data as JSON: /api/errors/ed45e5ceff3f3bc5.
Report an issue: GitHub.