Skip to content

Identify the R2 manifest validator to Cloudflare - #33

Merged
AlexMikhalev merged 1 commit into
mainfrom
fix/r2-validator-user-agent
Sep 25, 2026
Merged

AlexMikhalev merged 1 commit into
mainfrom
fix/r2-validator-user-agent

Conversation

@AlexMikhalev

Copy link
Copy Markdown
Contributor

Problem

The dispatched r2-manifest-health.yml run 36193817261 failed with HTTP Error 403: Forbidden, and the same failure reproduces locally. Cause: bot management on downloads.terraphim.ai answers the default Python-urllib User-Agent with 403 (verified: same URL returns 200 for curl's UA, 403 for Python-urllib/3.10), so the hourly health workflow has been red independently of channel health.

Change

scripts/validate-r2-manifests.py now sends User-Agent: terraphim-r2-manifest-validator/1.0 from both fetch paths (manifest load and streamed asset verification). Verified against the live channel after the v1.21.16 promotion: all three binaries validate legacy=strict=1.21.16 with full declared-size and SHA-256 enforcement. The file://-based contract tests are unaffected (18/18 pass).

Refs #337

Bot management on downloads.terraphim.ai answers the default
Python-urllib User-Agent with 403, which has been failing the hourly
r2-manifest-health workflow and local operator runs even though every
channel object is healthy. Both fetch paths now send
terraphim-r2-manifest-validator/1.0. Verified locally: all three
binaries validate legacy=strict=1.21.16 with full size and SHA-256
checks. Refs #337
@AlexMikhalev
AlexMikhalev merged commit fb1a575 into main Sep 25, 2026
2 checks passed
@AlexMikhalev
AlexMikhalev deleted the fix/r2-validator-user-agent branch September 25, 2026 21:59
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.

1 participant