Skip to content

Honor Vuforia rate-limit delays in fixture retries - #3770

Open
adamtheturtle wants to merge 2 commits into
fix/3767-target-read-retriesfrom
fix/3768-rate-limit-backoff
Open

adamtheturtle wants to merge 2 commits into
fix/3767-target-read-retriesfrom
fix/3768-rate-limit-backoff

Conversation

@adamtheturtle

Copy link
Copy Markdown
Member

Real Vuforia fixture retries used a fixed ten-second delay for HTTP 429 responses. Honor valid Retry-After delay-seconds and HTTP-date values; otherwise use exponential full jitter capped at 30 seconds. Schedule at most ten transient attempts within 120 seconds, and surface the original exception and response when another attempt cannot fit the server's requested delay.

The real backend now installs this policy before its initial cleanup. Shared helpers execute once by default, restore preceding policies after nested scopes and failures, and prevent nested transient retry loops from multiplying the attempt budget. Retry logs include attempt, exception type, status and delay without request credentials. Requests or SDK processing polls already in flight retain their own timeout; the deadline governs retry scheduling.

Fixes #3768. Depends on #3769 and targets its branch so this diff contains only the backoff and policy changes.

Validation:

  • 41 focused cases pass, including header parsing, fake-clock deadline exhaustion, nested budgets, policy restoration, adapter installation, and target-preservation regressions.
  • Retry modules and focused test modules have 100% statement and branch coverage.
  • Full local suite excluding the real backend and Docker-build cases: 2,062 passed, 839 skipped.
  • Pre-commit and pre-push hooks, partition checks, type checkers, changed-file Pylint, and diff checks passed.

Live-service and Docker validation remain with hosted CI. Backoff cannot guarantee recovery from persistent upstream throttling.

This branch had an error being deployed

1 failed and 1 active deployments
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