From ff2ca85a7f1676a579d95832e041af211d20292b Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Thu, 2 Apr 2026 02:37:05 -0400 Subject: [PATCH] errors on failure to bind address --- .../seedance2_pro_job/src/http_server/run_http_server.rs | 7 ++++++- .../video_thumbnail_job/src/http_server/run_http_server.rs | 7 ++++++- crates/service/web/storyteller_web/src/api_doc_server.rs | 7 ++++++- crates/service/web/storyteller_web/src/main.rs | 7 ++++++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/crates/service/job/seedance2_pro_job/src/http_server/run_http_server.rs b/crates/service/job/seedance2_pro_job/src/http_server/run_http_server.rs index 4a55e7aeac..49805fdb8d 100644 --- a/crates/service/job/seedance2_pro_job/src/http_server/run_http_server.rs +++ b/crates/service/job/seedance2_pro_job/src/http_server/run_http_server.rs @@ -58,7 +58,12 @@ pub fn run_http_server(args: CreateServerArgs) -> AnyhowResult { .route(web::head().to(|| HttpResponse::Ok())), ) }) - .bind(bind_address)? + .bind(&bind_address) + .unwrap_or_else(|err| { + eprintln!("FATAL: Failed to bind to address '{}': {}", bind_address, err); + eprintln!("The address is likely already in use by another process."); + std::process::exit(1); + }) .workers(num_workers) .run(); diff --git a/crates/service/job/video_thumbnail_job/src/http_server/run_http_server.rs b/crates/service/job/video_thumbnail_job/src/http_server/run_http_server.rs index 4a55e7aeac..49805fdb8d 100644 --- a/crates/service/job/video_thumbnail_job/src/http_server/run_http_server.rs +++ b/crates/service/job/video_thumbnail_job/src/http_server/run_http_server.rs @@ -58,7 +58,12 @@ pub fn run_http_server(args: CreateServerArgs) -> AnyhowResult { .route(web::head().to(|| HttpResponse::Ok())), ) }) - .bind(bind_address)? + .bind(&bind_address) + .unwrap_or_else(|err| { + eprintln!("FATAL: Failed to bind to address '{}': {}", bind_address, err); + eprintln!("The address is likely already in use by another process."); + std::process::exit(1); + }) .workers(num_workers) .run(); diff --git a/crates/service/web/storyteller_web/src/api_doc_server.rs b/crates/service/web/storyteller_web/src/api_doc_server.rs index 73c0949ad3..4463f0efc6 100644 --- a/crates/service/web/storyteller_web/src/api_doc_server.rs +++ b/crates/service/web/storyteller_web/src/api_doc_server.rs @@ -48,6 +48,11 @@ async fn main() -> Result<(), impl Error> { .url("/api-docs/openapi.json", ApiDoc::openapi()), ) }) - .bind(("localhost", 8989)).unwrap() + .bind(("localhost", 8989)) + .unwrap_or_else(|err| { + eprintln!("FATAL: Failed to bind docs server to localhost:8989: {}", err); + eprintln!("The address is likely already in use by another process."); + std::process::exit(1); + }) .run().await } \ No newline at end of file diff --git a/crates/service/web/storyteller_web/src/main.rs b/crates/service/web/storyteller_web/src/main.rs index d2cd08f5cb..c5713bcd4a 100644 --- a/crates/service/web/storyteller_web/src/main.rs +++ b/crates/service/web/storyteller_web/src/main.rs @@ -713,7 +713,12 @@ pub async fn serve(server_state: ServerState) -> AnyhowResult<()> add_routes(app, old_server_environment) }) - .bind(bind_address)? + .bind(&bind_address) + .unwrap_or_else(|err| { + eprintln!("FATAL: Failed to bind to address '{}': {}", bind_address, err); + eprintln!("The address is likely already in use by another process."); + std::process::exit(1); + }) .workers(num_workers) .run() .await?;