{"record":{"id":"f8eb5c20f831c58b","repo":"denoland/deno","slug":"an-executable-name-was-not-provided-one-could-not-f8eb5c","errorCode":null,"errorMessage":"An executable name was not provided. One could not be inferred from the URL. Aborting.\n  {} {}","messagePattern":"An executable name was not provided\\. One could not be inferred from the URL\\. Aborting\\.\n  (.+?) (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/tools/installer/global.rs","lineNumber":1073,"sourceCode":"\n    fn validate_name(exec_name: &str) -> Result<(), AnyError> {\n      if EXEC_NAME_RE.is_match(exec_name) {\n        Ok(())\n      } else {\n        Err(anyhow!(\"Invalid executable name: {exec_name}\"))\n      }\n    }\n\n    let module_url = resolve_url_or_path(module_url, cwd)?;\n    let name = if install_flags_global.name.is_some() {\n      install_flags_global.name.clone()\n    } else {\n      bin_name_resolver.infer_name_from_url(&module_url).await\n    };\n    let name = match name {\n      Some(name) => name,\n      None => {\n        return Err(anyhow!(\n          \"An executable name was not provided. One could not be inferred from the URL. Aborting.\\n  {} {}\",\n          deno_runtime::colors::cyan(\"hint:\"),\n          \"provide one with the `--name` flag\"\n        ));\n      }\n    };\n    validate_name(&name)?;\n\n    // Skip extra bin resolution when --name is provided (explicit single-entry\n    // intent) or when the specifier has a sub_path (e.g. npm:cowsay/cowthink).\n    let mut extra_entries = Vec::new();\n    if install_flags_global.name.is_none()\n      && let Ok(npm_ref) = NpmPackageReqReference::from_specifier(&module_url)\n      && npm_ref.sub_path().is_none()\n      && let Some(all_bins) = bin_name_resolver\n        .resolve_all_bin_entries_from_npm(&module_url)\n        .await\n      && all_bins.len() > 1","sourceCodeStart":1055,"sourceCodeEnd":1091,"githubUrl":"https://github.com/denoland/deno/blob/89f33cbef296a2b287f323d42de54c871fa69c77/cli/tools/installer/global.rs#L1055-L1091","documentation":"Error \"An executable name was not provided. One could not be inferred from the URL. Aborting.\n  {} {}\" thrown in denoland/deno.","triggerScenarios":"Thrown at cli/tools/installer/global.rs:1073 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"}