fix: messages not marked as read when new message arrives in active room#7088
Open
divyanshu-patil wants to merge 2 commits intoRocketChat:developfrom
Open
fix: messages not marked as read when new message arrives in active room#7088divyanshu-patil wants to merge 2 commits intoRocketChat:developfrom
divyanshu-patil wants to merge 2 commits intoRocketChat:developfrom
Conversation
Contributor
WalkthroughThe Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Suggested labels
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Proposed changes
When a new message arrived in a room the user was actively viewing, the unread count and read status were not being updated. The user had to leave and re-enter the room to trigger the read receipt.
This PR fixes a bug that caused this:
updateMessagepromise never resolvedupdateMessagewas written asnew Promise(async resolve => ...)but only calledresolve()in the early-return branch(this.rid !== message.rid). On the happy path — when the message did belong to the current room — the function did all its DB work and then silently hung forever. This meant awaitthis.updateMessage(message)inhandleMessageReceivednever completed, soreadMessageswas never reached.Issue(s)
closes #7087
How to test or reproduce
Screenshots
Before
When a new message arrives in the currently subscribed room, the read status does not update
read.fix.before.mp4
After
When a new message arrives in the currently subscribed room, the read status updates after a debounced interval
read.fix.after.mp4
Types of changes
Checklist
Further comments
Summary by CodeRabbit