Skip to content

Set a total retry limit on streams, or enforce progress #679

@findleyr

Description

@findleyr

Right now, the streamable client connection retries broken resumable connections up to StreamableClientTransport.MaxRetries, but once a connection has been re-established, the counter resets.

This can lead to a failure mode where a server keeps terminating the connection with status 200. We should either:

  1. Set a global limit on the number of retries across a single logical stream.
  2. Only reset the retry counter when the Last-Event-ID actually makes progress.

I'm leaning toward 2: if the stream is active and long-running, a global limit could be problematic. On the other hand, (2) doesn't have that problem, and still avoids the degenerate failure mode.

CC @jba @markus-kusano

Metadata

Metadata

Assignees

Labels

help wantedContributions welcome from those familiar with codebase. Comment first to say you're working on it

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions