What
Implement automatic retry with exponential backoff for transient API failures (network errors, 503, 429) across all service calls.
Why
Transient failures (network blips, server overload) are common but temporary. Without retry logic, users see immediate errors and must manually retry. Automatic retry with backoff handles most transient issues transparently.
Scope
In scope:
- Create a retry utility with configurable max retries and backoff
- Apply to all API calls in service files
- Retry on: network errors, 429 (rate limit), 503 (service unavailable)
- Do NOT retry on: 400, 401, 403, 404 (client errors)
- Show toast notification when retrying
Out of scope:
- Retry for file uploads
- Circuit breaker pattern
- Retry queue for offline scenarios
Acceptance Criteria
Technical Context
- Service files in
app/src/services/
- Utility in
app/src/utils/retry.ts
What
Implement automatic retry with exponential backoff for transient API failures (network errors, 503, 429) across all service calls.
Why
Transient failures (network blips, server overload) are common but temporary. Without retry logic, users see immediate errors and must manually retry. Automatic retry with backoff handles most transient issues transparently.
Scope
In scope:
Out of scope:
Acceptance Criteria
app/src/utils/Technical Context
app/src/services/app/src/utils/retry.ts