Skip to content

fix: retry verified mislabeled SSE disconnect - #2

Merged
etwk merged 1 commit into
mainfrom
fix/issue-1-buffered-disconnect
Oct 3, 2026
Merged

etwk merged 1 commit into
mainfrom
fix/issue-1-buffered-disconnect

Conversation

@etwk

@etwk etwk commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Change

  • Treat an Anthropic SSE invalid_request_error as transient only when its complete message exactly matches the verified transport-disconnect signature from issue Buffered transport disconnect mislabeled invalid_request_error bypasses retries #1.
  • Preserve permanent handling of invalid schemas, malformed tool messages, context-limit failures, and near-match messages.
  • Use the existing retry count, deadline, and buffering limits; discard failed buffered output and never transparently replay after commit.
  • Add classification and HTTP regression coverage, and document the exact-match compatibility exception.

This is an implementation-specific compatibility exception, not a general transport-error detector. It does not change retry budgets or timeouts.

Verification

  • Focused regression tests passed.
  • go test -race ./... -count=1 passed.
  • go vet ./... passed.
  • A compiled proxy passed nine synthetic HTTP smoke scenarios: buffered recovery in two attempts; exhausted and disabled local retries; insufficient deadline and buffering window; schema, tool-message, and context-limit errors; and no replay after client-observed content.

Only synthetic protocol data was used for verification; no production request content or deployment details are included.

Fixes #1

Recognize only the exact verified transport-disconnect signature while preserving request-validation failures and existing retry/commit boundaries.

Cover bounded buffered recovery, client retry signaling, and no replay after committed content. Document the compatibility exception.

Fixes #1
@etwk
etwk merged commit 6ca46c1 into main Oct 3, 2026
2 checks passed
@etwk
etwk deleted the fix/issue-1-buffered-disconnect branch October 3, 2026 02:31
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.

Buffered transport disconnect mislabeled invalid_request_error bypasses retries

1 participant