diff --git a/sgl-router/src/router.rs b/sgl-router/src/router.rs index 3b45ecde7..136ed9b12 100644 --- a/sgl-router/src/router.rs +++ b/sgl-router/src/router.rs @@ -180,7 +180,15 @@ impl Router { } _ => { // Wait until all workers are healthy for regular modes - Self::wait_for_healthy_workers(&worker_urls, timeout_secs, interval_secs)?; + let worker_urls = worker_urls.clone(); + std::thread::spawn(move || { + Self::wait_for_healthy_workers(&worker_urls, timeout_secs, interval_secs) + }) + .join() + .map_err(|e| { + error!("Health-check thread panicked: {:?}", e); + format!("Health-check thread panicked: {e:?}") + })??; } }