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

No one assigned

    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