Skip to content

ci(schema): add bounded retries for immutable release asset fetches #1194

Description

@bokelley

Problem

The required Validate schemas are up-to-date check performs network reads from the immutable, pinned AdCP release during model generation. A transient CDN reset currently fails the entire gate without a bounded retry.

Observed on Python rc.4 adoption PR #1193, exact head 71c2bc0f0d1a2bf783f001fdbba29801cefd9825:

The exact signed rc.4 inputs and local generation already passed on the same head. This incident is a CI transport-resilience failure, not evidence of schema drift.

Desired behavior

  • Retry immutable release-asset reads with a small, bounded policy for transient network failures.
  • Preserve the exact version and URL; never fall back to latest or another release.
  • Preserve signature/hash verification and fail closed after the retry budget.
  • Distinguish transport exhaustion from schema drift in logs and check summaries.
  • Add deterministic tests for transient success, permanent failure, hash/signature failure, and prohibition of version fallback.

Acceptance criteria

  • One transient reset/5xx can recover without changing the selected artifact.
  • Exhausted retries still fail the required check.
  • Integrity/authenticity failures are never retried into acceptance.
  • Logs record attempts and terminal classification without leaking credentials.
  • Existing schema generation and drift tests remain green.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingclaude-triagedpythonPull requests that update python code

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions