denoland/deno · error
no .desktop file found in {}
Error message
no .desktop file found in {} What it means
Error "no .desktop file found in {}" thrown in denoland/deno.
Source
Thrown at cli/tools/desktop.rs:817
plist::Value::Array(vec![plist::Value::Dictionary(url_type)]),
);
plist::to_file_xml(&plist_path, &dict)
.with_context(|| format!("failed to write {}", plist_path.display()))?;
Ok(())
}
/// Linux: add `x-scheme-handler/<scheme>` MIME types to the `.desktop` entry
/// and make sure `Exec=` forwards the opened URL via the `%u` field code.
fn register_deep_links_linux(
bundle_path: &Path,
schemes: &[String],
) -> Result<(), AnyError> {
let desktop_file = std::fs::read_dir(bundle_path)?
.filter_map(|e| e.ok().map(|e| e.path()))
.find(|p| p.extension().is_some_and(|e| e == "desktop"))
.ok_or_else(|| {
deno_core::anyhow::anyhow!(
"no .desktop file found in {}",
bundle_path.display()
)
})?;
let contents = std::fs::read_to_string(&desktop_file)?;
let mime = schemes
.iter()
.map(|s| format!("x-scheme-handler/{s};"))
.collect::<String>();
let mut out = String::with_capacity(contents.len() + mime.len() + 16);
let mut wrote_mime = false;
for line in contents.lines() {
if let Some(rest) = line.strip_prefix("Exec=") {
// The launcher must receive the URL as an argument, so ensure a `%u`
// field code is present exactly once.
if rest.contains("%u") || rest.contains("%U") {View on GitHub (pinned to 89f33cbef2)
When it happens
Trigger: Thrown at cli/tools/desktop.rs:817 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/dd0d5449ccd2850b.
Report an issue: GitHub.