Skip to content

fix: recover from prolonged MLS message buffering (WPB-26421) - #4341

Draft
sbakhtiarov wants to merge 2 commits into
developfrom
feat/mls-buffered-message-recovery
Draft

fix: recover from prolonged MLS message buffering (WPB-26421)#4341
sbakhtiarov wants to merge 2 commits into
developfrom
feat/mls-buffered-message-recovery

Conversation

@sbakhtiarov

@sbakhtiarov sbakhtiarov commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

https://wearezeta.atlassian.net/browse/WPB-26421

https://wearezeta.atlassian.net/browse/WPB-26421


What is new in this PR?

Issue

If a commit is missed, CoreCrypto can keep buffering later MLS messages indefinitely and the conversation does not recover.

Solution

  • Add BufferedMLSMessageRecoveryTracker, scoped by conversation and subconversation, to track the timestamp span of buffered events in memory.
  • Trigger stale-epoch verification when the buffered span exceeds one minute; a span exactly at one minute does not recover.
  • Clear or restart tracking after successful decryption, out-of-sync handling, conversation reset, or a recovery trigger.

Dependency

This is stacked on #4316, which surfaces buffered CoreCrypto failures to the event-processing layer. After #4316 merges, this branch will be rebased onto develop and the PR base will be retargeted.

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Test Results

0 tests  ±0   0 ✅ ±0   0s ⏱️ ±0s
0 suites ±0   0 💤 ±0 
0 files   ±0   0 ❌ ±0 

Results for commit 2dccb3a. ± Comparison against base commit a0d6a8f5.

♻️ This comment has been updated with latest results.

@sbakhtiarov sbakhtiarov changed the title fix: recover from prolonged MLS message buffering (WPB-23206) fix: recover from prolonged MLS message buffering (WPB-26421) Jul 27, 2026
Base automatically changed from feat/mls-buffered-errors to develop July 31, 2026 11:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant