CI fails intermittently on third-party artifact downloads, unrelated to the changes under test. Measured over one afternoon on a 14-PR stack: 22 failed Build Ubuntu runs, 48 failed jobs.
| Job |
Count |
Cause |
build-ubuntu |
18 |
Couldn't download depthai-device-fwp.tar.xz |
build-ubuntu |
3 |
Couldn't download depthai-bootloader-fwp.tar.xz |
build-ubuntu |
5 |
Failed to download CloudXR Runtime SDK (NGC 404) |
wheel-gate |
22 |
aggregator only — mirrors build-ubuntu |
test-teleop-ros2 |
observed |
CloudXR SDK 404, exit 4 |
It hits main too: Build Ubuntu failed on c5fe6624c with the CloudXR error, green either side.
Three things make one flaky download expensive:
fail-fast: true on pull requests (build-ubuntu.yml:36) turns a single 404 into 1 failure plus 11 cancelled jobs and a red wheel-gate.
curl --retry does not retry 4xx. scripts/download_cloudxr_runtime_sdk.sh:105 passes --retry 3 --retry-delay 5, inert against the 404 actually seen.
- DepthAI device binaries have no mirror or cache — fetched per job by
DepthaiDownloader.cmake, so every matrix entry is an independent chance to fail.
Directions: cache or mirror both artifacts, retry 4xx explicitly, or let test-teleop-ros2 skip when the SDK is unavailable.
CI fails intermittently on third-party artifact downloads, unrelated to the changes under test. Measured over one afternoon on a 14-PR stack: 22 failed
Build Ubunturuns, 48 failed jobs.build-ubuntuCouldn't download depthai-device-fwp.tar.xzbuild-ubuntuCouldn't download depthai-bootloader-fwp.tar.xzbuild-ubuntuFailed to download CloudXR Runtime SDK(NGC 404)wheel-gatebuild-ubuntutest-teleop-ros2It hits
maintoo:Build Ubuntufailed onc5fe6624cwith the CloudXR error, green either side.Three things make one flaky download expensive:
fail-fast: trueon pull requests (build-ubuntu.yml:36) turns a single 404 into 1 failure plus 11 cancelled jobs and a redwheel-gate.curl --retrydoes not retry 4xx.scripts/download_cloudxr_runtime_sdk.sh:105passes--retry 3 --retry-delay 5, inert against the 404 actually seen.DepthaiDownloader.cmake, so every matrix entry is an independent chance to fail.Directions: cache or mirror both artifacts, retry 4xx explicitly, or let
test-teleop-ros2skip when the SDK is unavailable.