Realm sync throwing ChangeStreamHistoryLost

Hi, I got this error and my realm sync got paused automatically.

encountered non-recoverable resume token error. Sync cannot be resumed from this state and must be terminated and re-enabled to continue functioning: (ChangeStreamHistoryLost) Resume of change stream was not possible, as the resume point may no longer be in the oplog.

Can Anyone from MongoDB realm Help me with this?

Hi @Abhishek_Matta,

To resume the functionality, you should do what’s suggested in the error, i.e. not just resume or restart Sync, but Terminate, and re-Enable Sync. It’s also a good practice to leave a few minutes in between the two actions, to give an opportunity to all processes involved to wind down graciously, and clean up properly after themselves.

As per the possible cause behind, it very much depends on the flow of your data. Strictly speaking, this happens when too many transactions (i.e. operations on the DB) have been accumulated, the process (Translator) just cannot keep up with either the sheer quantity or complexity of the changes to apply, and starts dropping them.

A better description of the process/workflow that ended up generating this error would help in suggesting a possible solution.

1 Like

@Paolo_Manna Thanks for the reply.

We have dumped atlas data. Could this be a possible cause behind this?

Not per se, even though it depends on the steps in the process you’ve followed. For example, if you paused Sync while doing the dump, it could have accumulated enough unprocessed transactions during the pausing time to fill up the queue (called Oplog), and be unable to restart Sync properly. In general, Pause should only be considered for very short periods of time.

1 Like