Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Type of change
Content
When a to_device olm message cannot be decrypted (BAD_ENCRYPTED_MESSAGE), the sending devices was marked as wedged (ratchet got desync).
In order to fix it, the SDK will automatically try to refresh the session with this device by creating a new session and sending a new dummy prekey message.
This unwedging mechanism can only be done once per hour.
The issue is that when a device was marked as wedged it was never removed later. Meaning that if the app stayed on for long, a new olm session will be created every hour. This could explain the proliferation of olm sessions noticed in some logs:
Fixes #6534
Motivation and context
Screenshots / GIFs
Tests
Can be tested by commenting out persisting olm sessions in the code, then force discard session and send messages. Kill/Restart the sending device will then restore an old ratchet version causing a desync.
Tested devices
Checklist