And then the client will try to reconnect automatically using the
latest replayId. Since this logic is handled by SubscriptionHelper, if
the replayId is old enough it will fail on reconnect and then the app
will stop receiving events forever.
The only thing I can think of is to always use replayId=-2 to fetch
all events and ignore the ones I already processed, but it seems
suboptimal to say the least.
How should I handle this scenario so that the implementation is robust?