{"record":{"id":"8b95159b24cfd52a","repo":"denoland/deno","slug":"invalid-output-dylib-path-has-no-parent-dir","errorCode":null,"errorMessage":"invalid --output: dylib path has no parent dir: {}","messagePattern":"invalid --output: dylib path has no parent dir: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/tools/desktop.rs","lineNumber":2979,"sourceCode":"    bail!(\n      \"invalid {kind} {name:?}: must match [A-Za-z0-9 ._-]+, but contains {c:?}\",\n    );\n  }\n  Ok(())\n}\n\n/// The pieces of `dylib_path` we feed into the bundlers, with proper\n/// error messages instead of `unwrap` panics on degenerate inputs like\n/// `--output /` or `--output .`.\nstruct DylibParts<'a> {\n  parent: &'a Path,\n  file_name: &'a std::ffi::OsStr,\n  app_name: String,\n}\n\nfn dylib_parts(dylib_path: &Path) -> Result<DylibParts<'_>, AnyError> {\n  let parent = dylib_path.parent().ok_or_else(|| {\n    deno_core::anyhow::anyhow!(\n      \"invalid --output: dylib path has no parent dir: {}\",\n      dylib_path.display()\n    )\n  })?;\n  let file_name = dylib_path.file_name().ok_or_else(|| {\n    deno_core::anyhow::anyhow!(\n      \"invalid --output: dylib path has no file name: {}\",\n      dylib_path.display()\n    )\n  })?;\n  let app_name = dylib_path\n    .file_stem()\n    .ok_or_else(|| {\n      deno_core::anyhow::anyhow!(\n        \"invalid --output: dylib path has no file stem: {}\",\n        dylib_path.display()\n      )\n    })?","sourceCodeStart":2961,"sourceCodeEnd":2997,"githubUrl":"https://github.com/denoland/deno/blob/89f33cbef296a2b287f323d42de54c871fa69c77/cli/tools/desktop.rs#L2961-L2997","documentation":"Error \"invalid --output: dylib path has no parent dir: {}\" thrown in denoland/deno.","triggerScenarios":"Thrown at cli/tools/desktop.rs:2979 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"}