From 089627414ec3666f5e2fb87ffa8003832af33005 Mon Sep 17 00:00:00 2001 From: duanbing Date: Fri, 19 Jun 2026 07:00:59 +0800 Subject: [PATCH] fix(amux): fall back to default base when AMUX_API_BASE is empty env::var returns Ok("") for an env var set to an empty string (as docker-compose passes ${AMUX_API_BASE:-} when unset), which would yield an empty base URL. Filter empties so https://api.amux.ai still wins. Co-Authored-By: Claude Opus 4.8 (1M context) --- tensorzero-core/src/providers/amux.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tensorzero-core/src/providers/amux.rs b/tensorzero-core/src/providers/amux.rs index 69ea3b496f..4a1cbe094c 100644 --- a/tensorzero-core/src/providers/amux.rs +++ b/tensorzero-core/src/providers/amux.rs @@ -23,8 +23,14 @@ const REQUEST_TIMEOUT: Duration = Duration::from_secs(300); const ASYNC_TASK_TIMEOUT: Duration = Duration::from_secs(3600); lazy_static! { - static ref AMUX_API_BASE: String = - std::env::var("AMUX_API_BASE").unwrap_or_else(|_| "https://api.amux.ai".to_string()); + // `unwrap_or_else` only fires on `Err`; an env var set to an empty string + // (e.g. docker-compose's `AMUX_API_BASE: ${AMUX_API_BASE:-}` when unset) + // comes back as `Ok("")` and would otherwise become an empty base URL. + // Filter empties so the public default still wins. + static ref AMUX_API_BASE: String = std::env::var("AMUX_API_BASE") + .ok() + .filter(|s| !s.is_empty()) + .unwrap_or_else(|| "https://api.amux.ai".to_string()); } pub struct AmuxProvider;