Skip to content

Validate retry configuration values #57

@grantfox-oss

Description

@grantfox-oss

Summary

Validate retry configuration at client construction or request time so invalid values do not cause surprising delays, infinite loops, or silent retry failures.

Current Behaviour

RetryConfig accepts optional values such as maxRetries, baseDelayMs, maxDelayMs, and retryableStatuses, but the config validation only checks apiUrl and timeoutMs.

Expected Behaviour

Invalid retry settings should throw a clear GuildPassError before requests are made.

Suggested Implementation

Add retry config validation to validateConfig for global retry settings and to HttpClient for per-request retry overrides. Reject negative retry counts, negative delays, empty or invalid status lists, and non-finite numeric values.

Files or Areas Likely Affected

  • src/config/sdkConfig.ts
  • src/http/httpClient.ts
  • src/http/http.types.ts
  • src/errors/errorCodes.ts
  • tests/client.test.ts
  • tests/httpClient.test.ts

Acceptance Criteria

  • Negative maxRetries values are rejected
  • Negative or non-finite delay values are rejected
  • maxDelayMs lower than baseDelayMs is handled intentionally or rejected
  • Invalid retry status codes are rejected
  • Per-request retry overrides are validated
  • Error messages identify the invalid retry field

Additional Notes

Assumption: failing fast is preferred over trying to correct malformed retry settings silently.

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaignbugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions