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

bugSomething isn't workinghelp wantedGood candidate for contribution. 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