Skip to content

Retry package.xml and other HTTP fetches on transient errors - #160

Merged
traversaro merged 2 commits into
RoboStack:masterfrom
Tobias-Fischer:fix/retry-package-xml
Oct 6, 2026
Merged

traversaro merged 2 commits into
RoboStack:masterfrom
Tobias-Fischer:fix/retry-package-xml

Conversation

@Tobias-Fischer

Copy link
Copy Markdown
Contributor

CI runs regularly fail on transient GitHub errors while fetching package.xml files, e.g.

RuntimeError: Failed to fetch package.xml from https://raw.githubusercontent.com/ros2-gbp/ament_lint-release/refs/tags/release/kilted/ament_pclint/0.19.2-2/package.xml: 503 Server Error: first byte timeout

vinca/distro.py _get now retries connection errors, timeouts, 429 and 5xx responses up to 5 times with exponential backoff (2, 4, 8, 16 s). Other HTTP errors (e.g. 404) still fail immediately.

Adds vinca/test_fetch_retry.py (3 tests); the full test suite passes and ruff is clean.

🤖 Generated with Claude Code

Tobias-Fischer and others added 2 commits October 7, 2026 07:38
raw.githubusercontent.com regularly answers CI with errors like
"503 Server Error: first byte timeout", which failed the whole recipe
generation. Retry connection errors, timeouts, 429 and 5xx responses up to five
times with exponential backoff (2, 4, 8, 16 s); other errors still fail at once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@traversaro traversaro left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@traversaro
traversaro merged commit 578dfef into RoboStack:master Oct 6, 2026
3 checks passed
@Tobias-Fischer
Tobias-Fischer deleted the fix/retry-package-xml branch October 6, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants