Skip to content

Fix rate-limit response to always include valid Retry-After header value (RFC 7231 requires non-negative integer) - #986

Open
ZeeTech374 wants to merge 1 commit into
WHEELBACK:mainfrom
ZeeTech374:batch-119-features
Open

ZeeTech374 wants to merge 1 commit into
WHEELBACK:mainfrom
ZeeTech374:batch-119-features

Conversation

@ZeeTech374

Copy link
Copy Markdown

Changes:

  • rate_limiter.rs: Ensure Retry-After header value is always a positive integer (>= 1 second)
  • idempotency.rs: Add payload_hash field to CachedResponse for idempotency validation
  • idempotency.rs: Update get() to accept payload_hash and return error if payload mismatch detected
  • idempotency.rs: Add hash_payload() utility to compute deterministic hash of request payload
  • idempotency.rs: insert() now requires payload_hash parameter for proper idempotency checking

Closes #851
Closes #852
Closes #853
Closes #854

Pull Request

Summary

  • Describe the purpose of this PR in one or two sentences.

Checklist

  • PR description includes: Closes #[issue_id]
  • Tests added or updated
  • ABI snapshot updated if contract sources changed (abis/ and COMEBACKHERE-contracts/)
  • Screenshots attached if UI changed
  • Documentation updated if needed

Notes

  • For contract changes, verify ABI snapshot hygiene with make check-abi-snapshots.
  • For UI changes, include screenshots or screen recordings to help reviewers.

- WHEELBACK#851: Fix rate-limit response to always include valid Retry-After header value (RFC 7231 requires non-negative integer)
- WHEELBACK#852: Prevent concurrent idempotent retry race condition by adding payload hash validation to idempotency store
- WHEELBACK#853: Add payload hash validation to detect and reject idempotency key reuse with different request payloads
- WHEELBACK#854: Concurrent requests with same idempotency key now properly serialize through payload hash validation

Changes:
- rate_limiter.rs: Ensure Retry-After header value is always a positive integer (>= 1 second)
- idempotency.rs: Add payload_hash field to CachedResponse for idempotency validation
- idempotency.rs: Update get() to accept payload_hash and return error if payload mismatch detected
- idempotency.rs: Add hash_payload() utility to compute deterministic hash of request payload
- idempotency.rs: insert() now requires payload_hash parameter for proper idempotency checking
@drips-wave

drips-wave Bot commented Oct 18, 2026

Copy link
Copy Markdown

@ZeeTech374 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant