AntFleet

Disagreement · 54ec06bb-openai-0

isTransientError always returns true; non-retryable errors (e.g., 4xx other than 429) are incorrectly treated as transient

solo GPT-5
repo e24ef98c·PR #11·reviewed 1 week ago

GPT-5 finding

isTransientError always returns true; non-retryable errors (e.g., 4xx other than 429) are incorrectly treated as transient

highbughigh
  • apps/web/lib/review-worker.ts:361-369
  • apps/web/lib/review-worker.ts:370-384
  • apps/web/lib/review-worker.ts:385-391
The function’s comment states most 4xx (other than 429) and likely code bugs should NOT be retried, but the implementation returns true unconditionally, marking every error as transient. In runReviewWorker this sets retryable=true, causing up to MAX_PROCESSING_ATTEMPTS wasted retries for non-retryable failures (e.g., 400/401/403/404), delaying terminal failure and increasing load/cost.

Recommendation

Tighten isTransientError to return false for non-retryable cases. Example: return true for 429 and 5xx and network/timeout signals; return false for 4xx other than 429 and for messages indicating validation/logic errors. Remove the unconditional final return true.

Other reviewer

The other reviewer flagged nothing in this file/line range.

Why this didn't post

This finding didn't meet AntFleet's unanimous agreement threshold. Both frontier models review every PR independently; only findings they both flag with the same severity and category are posted to the PR. This one fell through.

read the methodology →