{"record":{"id":"4e783fd14ec949ca","repo":"denoland/deno","slug":"app-bundle-has-no-name","errorCode":null,"errorMessage":"app bundle has no name","messagePattern":"app bundle has no name","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/tools/desktop.rs","lineNumber":3325,"sourceCode":"  // pre-creating it as a symlink), and cleans up on drop.\n  let parent = dmg_path\n    .parent()\n    .filter(|p| !p.as_os_str().is_empty())\n    .unwrap_or_else(|| Path::new(\".\"));\n  std::fs::create_dir_all(parent)?;\n  let staging = tempfile::Builder::new()\n    .prefix(\".dmg-staging-\")\n    .tempdir_in(parent)\n    .with_context(|| {\n      format!(\"failed to stage DMG tempdir in {}\", parent.display())\n    })?;\n\n  // Copy the .app into the staging dir and add an /Applications symlink so\n  // users can drag the app across in the mounted DMG window.\n  let staged_app = staging.path().join(\n    app_bundle\n      .file_name()\n      .ok_or_else(|| deno_core::anyhow::anyhow!(\"app bundle has no name\"))?,\n  );\n  crate::tools::compile::copy_dir_all(app_bundle, &staged_app)?;\n  #[cfg(unix)]\n  {\n    let _ = std::os::unix::fs::symlink(\n      \"/Applications\",\n      staging.path().join(\"Applications\"),\n    );\n  }\n\n  if dmg_path.exists() {\n    std::fs::remove_file(dmg_path)?;\n  }\n\n  let status = std::process::Command::new(\"hdiutil\")\n    .args([\n      \"create\",\n      \"-volname\",","sourceCodeStart":3307,"sourceCodeEnd":3343,"githubUrl":"https://github.com/denoland/deno/blob/89f33cbef296a2b287f323d42de54c871fa69c77/cli/tools/desktop.rs#L3307-L3343","documentation":"Error \"app bundle has no name\" thrown in denoland/deno.","triggerScenarios":"Thrown at cli/tools/desktop.rs:3325 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"89f33cbef296a2b287f323d42de54c871fa69c77","analyzedAt":"2026-08-16T07:54:21.310Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}