Skip to content

fix(api): preserve typed stream read errors - #185

Merged
caigee-cmd merged 2 commits into
caigee-cmd:mainfrom
AtkinsChang:fix/devin/stream-error-classification
Sep 17, 2026
Merged

caigee-cmd merged 2 commits into
caigee-cmd:mainfrom
AtkinsChang:fix/devin/stream-error-classification

Conversation

@AtkinsChang

Copy link
Copy Markdown
Contributor

Summary

Preserve upstream provider errors, including wrapped errors, through OpenAI, Anthropic, and Responses stream relays.

This prevents invalid Devin requests from being reclassified as transport failures and incorrectly cooling accounts. Unknown transport errors remain classified as unavailable.

Validation

  • Regression tests cover error classification, retry hints, and account cooldown behavior.
  • Go tests, vet, and server build passed.
  • No live upstream validation.

Devin can finish the HTTP exchange and then deliver a typed Connect error
through the stream body. Reclassifying it as an interruption turns malformed
requests into account cooldowns.

Preserve wrapped provider errors at each SSE reader and retain their
classification, failover decision, and retry hint. Continue classifying unknown
transport errors as unavailable so account routing can retry them.
@AtkinsChang
AtkinsChang force-pushed the fix/devin/stream-error-classification branch from 8cd273d to a2dc057 Compare September 17, 2026 08:11
@caigee-cmd
caigee-cmd force-pushed the fix/devin/stream-error-classification branch from 4c8e3b9 to d19c97d Compare September 17, 2026 08:41
@caigee-cmd
caigee-cmd merged commit 522000a into caigee-cmd:main Sep 17, 2026
6 checks passed
@AtkinsChang
AtkinsChang deleted the fix/devin/stream-error-classification branch September 17, 2026 08:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants