You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(logs): redrive failed requests + drop response body from error log
Address PR #1220 review comments.
1. (Codex P1) `Flusher::flush` was dropping `FailedRequestError` instead
of redriving. The previous double-`if let Err(e) = result` pattern
only ever ran the first arm — `JoinSet::join_all` returns `Vec<T>`,
not `Vec<Result<T, JoinError>>`, so `result` is the send Result
directly. The first arm logged "Failed to join task" and `continue`d,
making the second arm unreachable. Net effect: every bounded retry
exhaustion silently dropped the batch instead of re-queuing it.
Collapse to a single, correct arm.
2. (Copilot) Stop logging the response body on retry exhaustion. Log
intakes can echo back the submitted payload, which may contain
sensitive customer data, and bodies can be arbitrarily large. Keep
the status code in the error message; drain the body to allow
connection reuse but discard it.
3. (Copilot) Add body matcher to `failed_request_error_carries_replayable_request`
so the test would fail if the stashed request's body were corrupted —
previously only path/method were verified.
Adds `flush_redrives_failed_requests_after_retry_exhaustion` to lock
in the redrive contract at the `Flusher::flush` entry point. Without
the fix above, this test fails with `failed.len() == 0`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments