{"record":{"id":"3e3edf41d4a64536","repo":"denoland/deno","slug":"name-dev-server-with-hmr-did-not-start-within-15","errorCode":null,"errorMessage":"{name} dev server with HMR did not start within 15s","messagePattern":"(.+?) dev server with HMR did not start within 15s","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/tools/desktop.rs","lineNumber":1226,"sourceCode":"    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))\n}\n\n/// Launch the desktop app with HMR enabled after compilation.\n///","sourceCodeStart":1208,"sourceCodeEnd":1244,"githubUrl":"https://github.com/denoland/deno/blob/89f33cbef296a2b287f323d42de54c871fa69c77/cli/tools/desktop.rs#L1208-L1244","documentation":"Error \"{name} dev server with HMR did not start within 15s\" thrown in denoland/deno.","triggerScenarios":"Thrown at cli/tools/desktop.rs:1226 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"}