From b61d45ebda040eb858fd0b695af75a41af551382 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Wed, 12 Aug 2026 14:03:17 -0700 Subject: [PATCH 1/4] Automatically retry webrtc build downloads --- webrtc-sys/build/src/lib.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/webrtc-sys/build/src/lib.rs b/webrtc-sys/build/src/lib.rs index 4b07707df..96e165b56 100644 --- a/webrtc-sys/build/src/lib.rs +++ b/webrtc-sys/build/src/lib.rs @@ -209,8 +209,22 @@ pub fn download_webrtc() -> Result<()> { return Ok(()); } - let mut resp = reqwest::blocking::get(download_url()) - .context("Failed to send HTTP request to download WebRTC")?; + let mut resp = reqwest::blocking::get(download_url()); + for attempt in 1..3 { + let transient = match &resp { + Ok(resp) => { + resp.status().is_server_error() || resp.status() == StatusCode::TOO_MANY_REQUESTS + } + Err(_) => true, + }; + if !transient { + break; + } + println!("cargo:warning=webrtc download attempt {} failed, retrying...", attempt); + std::thread::sleep(std::time::Duration::from_secs(5)); + resp = reqwest::blocking::get(download_url()); + } + let mut resp = resp.context("Failed to send HTTP request to download WebRTC")?; if resp.status() != StatusCode::OK { return Err(anyhow!("failed to download webrtc: {}", resp.status())); } From 17676b4562015fec1d4ddf31e58df32a7fff8757 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Wed, 12 Aug 2026 14:04:18 -0700 Subject: [PATCH 2/4] Changeset --- .changeset/automatically_retry_webrtc_build_downloads.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changeset/automatically_retry_webrtc_build_downloads.md diff --git a/.changeset/automatically_retry_webrtc_build_downloads.md b/.changeset/automatically_retry_webrtc_build_downloads.md new file mode 100644 index 000000000..6d5ef3bc8 --- /dev/null +++ b/.changeset/automatically_retry_webrtc_build_downloads.md @@ -0,0 +1,8 @@ +--- +webrtc-sys: patch +webrtc-sys-build: patch +livekit: patch +libwebrtc: patch +--- + +# Automatically retry webrtc build downloads From 048888f3d00fa69c9fa7be86e1c906a39f425919 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Thu, 13 Aug 2026 08:40:40 -0700 Subject: [PATCH 3/4] Update webrtc-sys/build/src/lib.rs Co-authored-by: lukasIO --- webrtc-sys/build/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webrtc-sys/build/src/lib.rs b/webrtc-sys/build/src/lib.rs index 96e165b56..ef7dde5e6 100644 --- a/webrtc-sys/build/src/lib.rs +++ b/webrtc-sys/build/src/lib.rs @@ -220,7 +220,7 @@ pub fn download_webrtc() -> Result<()> { if !transient { break; } - println!("cargo:warning=webrtc download attempt {} failed, retrying...", attempt); + println!("cargo:warning=webrtc download attempt {} failed, retrying in 5s...", attempt); std::thread::sleep(std::time::Duration::from_secs(5)); resp = reqwest::blocking::get(download_url()); } From 4e56263f97ad1b1991629d756427c7f9e731eaa6 Mon Sep 17 00:00:00 2001 From: Jacob Gelman <3182119+ladvoc@users.noreply.github.com> Date: Thu, 13 Aug 2026 08:44:12 -0700 Subject: [PATCH 4/4] Complete changeset --- .changeset/automatically_retry_webrtc_build_downloads.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.changeset/automatically_retry_webrtc_build_downloads.md b/.changeset/automatically_retry_webrtc_build_downloads.md index 6d5ef3bc8..4410c3d67 100644 --- a/.changeset/automatically_retry_webrtc_build_downloads.md +++ b/.changeset/automatically_retry_webrtc_build_downloads.md @@ -2,6 +2,7 @@ webrtc-sys: patch webrtc-sys-build: patch livekit: patch +livekit-ffi: patch libwebrtc: patch ---