Hi I'm subscribing to Salesforce Change Data Capture events. I had the problem that after 24 hours the replayId is stale and if Camel tries to reconnect to it it throws an error (I asked about this here: https://mail-archives.apache.org/mod_mbox/camel-users/202002.mbox/%3CCAJrxdruca8yqT7fs4snObY6QoCD8cHPUWDkqF3XdBXbGBd4Spg%40mail.gmail.com%3E)
As suggested by Zoran Regvart I'm storing the replayId and the timestamp, so on app startup if I know the replayId is old enough, I pass ?replayId=-2 to replay all events. This works fine, but the problem I'm facing now is that if the app reconnects after some time I get this event: Connect failure: {advice={reconnect=handshake, interval=0}, channel=/meta/connect, id=3320, error=403::Unknown client, successful=false} 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? Thanks, Andrés