Skip to content

fix(http): cap standard retry delays - #262

Merged
thomhurst merged 2 commits into
mainfrom
issue-217-retry-after-budget
Aug 24, 2026
Merged

fix(http): cap standard retry delays#262
thomhurst merged 2 commits into
mainfrom
issue-217-retry-after-budget

Conversation

@thomhurst

Copy link
Copy Markdown
Owner

Summary

  • cap every Standard HTTP retry delay at 10 seconds through RetryOptions.MaxDelay
  • add HttpShield.RetryAfter(TimeSpan maxDelay) for custom server-suggestion caps without shortening a larger computed backoff
  • document the Standard bound and Polly migration difference
  • pin cap, backoff, validation, default, and pipeline-description behavior

The issue allows either a bounded delay or returning the response early. This uses the bounded-delay path because the current retry contract has no safe stop-and-retain-result sentinel; adding one would broaden into the retry-control work tracked separately.

Validation

  • dotnet build Kevlar.slnx -c Release
  • dotnet run --project tests/Kevlar.Tests -c Release --no-build -- --timeout 5m (850 passed)
  • dotnet run --project tests/Kevlar.IntegrationTests -c Release --no-build -- --timeout 5m (131 passed)
  • dotnet run --project tests/Kevlar.NetStandard.Tests -c Release --no-build -- --timeout 5m (10 passed)
  • dotnet run --project tests/Kevlar.NetStandard21.Tests -c Release --no-build -- --timeout 5m (4 passed)
  • pwsh scripts/Verify-Docs.ps1
  • pwsh scripts/Verify-DocSnippets.ps1 -PackagesPath artifacts/package/release -Version 0.0.0-docs217 (119 snippets; behavior passed)
  • npm ci --prefix docs
  • npm run build --prefix docs

Depends on #258, whose repair commits are included in this branch.

Closes #217

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 51bc7304-ddf7-44aa-8a52-51e602293d61


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Keep coverage instrumentation initialization outside the measured Current-read loop.
@thomhurst
thomhurst force-pushed the issue-217-retry-after-budget branch from 320bba1 to fc18251 Compare August 24, 2026 21:57
@thomhurst
thomhurst merged commit 33d64ad into main Aug 24, 2026
7 checks passed
@thomhurst
thomhurst deleted the issue-217-retry-after-budget branch August 24, 2026 22:32
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.

fix(http): cap Retry-After in the standard shield, or return the response when it exceeds the remaining budget

1 participant