{"record":{"id":"68af13132e80f5cf","repo":"denoland/deno","slug":"dev-server-exited-without-printing-a-url","errorCode":null,"errorMessage":"dev server exited without printing a URL","messagePattern":"dev server exited without printing a URL","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/tools/desktop.rs","lineNumber":1222,"sourceCode":"      format!(\"failed to spawn HMR dev server: {:?}\", cmd_args)\n    })?;\n\n  let stdout = child.stdout.take().ok_or_else(|| {\n    deno_core::anyhow::anyhow!(\"failed to capture HMR dev server stdout\")\n  })?;\n  let mut lines = BufReader::new(stdout).lines();\n\n  let url = tokio::time::timeout(std::time::Duration::from_secs(15), async {\n    while let Ok(Some(line)) = lines.next_line().await {\n      let url = parse_dev_server_url(&line);\n      // Echo the dev server's own startup output (banner, URL, warnings) so\n      // it isn't swallowed while we scan for the URL.\n      log::info!(\"{line}\");\n      if let Some(url) = url {\n        return Ok(url);\n      }\n    }\n    deno_core::anyhow::bail!(\"dev server exited without printing a URL\")\n  })\n  .await\n  .map_err(|_| {\n    deno_core::anyhow::anyhow!(\n      \"{name} dev server with HMR did not start within 15s\"\n    )\n  })??;\n\n  // Keep forwarding the dev server's stdout so its HMR/compile logs stay\n  // visible after startup instead of being silently swallowed. The task ends\n  // on its own once the child is killed (on drop) and the pipe closes.\n  tokio::spawn(async move {\n    while let Ok(Some(line)) = lines.next_line().await {\n      log::info!(\"{line}\");\n    }\n  });\n\n  Ok((url, child))","sourceCodeStart":1204,"sourceCodeEnd":1240,"githubUrl":"https://github.com/denoland/deno/blob/89f33cbef296a2b287f323d42de54c871fa69c77/cli/tools/desktop.rs#L1204-L1240","documentation":"Error \"dev server exited without printing a URL\" thrown in denoland/deno.","triggerScenarios":"Thrown at cli/tools/desktop.rs:1222 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"}