-
Notifications
You must be signed in to change notification settings - Fork 247
Closed
Copy link
Labels
enhancementNew feature or requestNew feature or requesttriageIssues / Features awaiting triageIssues / Features awaiting triage
Milestone
Description
🧭 Epic
Title: HTTPX Client with Smart Retry and Backoff Mechanism
Goal: Ensure all outbound HTTP requests made using httpx.AsyncClient are resilient to transient network or server errors by implementing automatic retries with exponential backoff and jitter, while intelligently adapting retry behavior based on HTTP error type (e.g. 503, 429, 401), to improve reliability without overwhelming services or retrying unrecoverable errors.
For detailed description: Check #258
🙋♂️ User Story 1
As a: System reliability engineer
I want: all httpx.AsyncClient calls to automatically retry with exponential backoff and jitter
So that: temporary network failures don't cause immediate tool execution or federation failures.
✅ Acceptance Criteria
Scenario: Retry failed HTTP requests with exponential backoff
Given httpx client configured with retry policy
When first request fails with connection timeout
Then retry after 1s + random jitter (0-500ms)
When second request fails
Then retry after 2s + random jitter (0-1s)
When third request fails
Then retry after 4s + random jitter (0-2s)
And stop after max_retries reached
Scenario: Different retry strategies for different error types
Given HTTP client with error-specific retry policies
When request fails with 503 Service Unavailable
Then retry with full exponential backoff
When request fails with 429 Rate Limited
Then honor Retry-After header if present, else exponential backoff
When request fails with 401 Unauthorized
Then do NOT retry (auth error)
🔗 MCP Standards Check
- Change adheres to current MCP specifications
- No breaking changes to existing MCP-compliant integrations
- If deviations exist, please describe them below:
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesttriageIssues / Features awaiting triageIssues / Features awaiting triage