-
-
Notifications
You must be signed in to change notification settings - Fork 624
Open
Labels
A-PresenceO-OccasionalAffects or can be seen by some users regularly or most users rarelyAffects or can be seen by some users regularly or most users rarelyS-MinorImpairs non-critical functionality or suitable workarounds existImpairs non-critical functionality or suitable workarounds existT-Defect
Description
We have found out that there is clear inconsistency in user presence status occurs after a page refresh.
Steps to Reproduce:
- Set the presence status to "Online".
- Refresh the page.
- Observe that the displayed status is "Online" but matrix reverts in status_presence to the previous state"Offline", even though the UI toggle retains the newly set status "Online".
- Refreshing the page without any status change would keep it correct to "Online".
- Change the status to "Offline".
- Refresh the page.
- Presence status will be shown "Offline" but matrix status_presence returns "Online".
Expected Behavior:
Presence status should persist and reflect the user’s last-set value after a page refresh
Observed Behavior:
After refresh, the UI toggle shows the correct status (e.g., "Busy"), but the actual presence data reverts to the prior state. This suggests a synchronization failure between the client’s cached state and the server’s response post-refresh.
Might be Related Issue:
This may connect to matrix-js-sdk#2535, which highlights unreliable event triggering for user presence updates. The problem could stem from missing or delayed User.presence
event emissions after rehydration.
Tested Environments:
- Google Chrome, Microsoft Edge, Safari
- Multiple homeservers and clients
- We use matrix-js-sdk v37.2.0 at the moment
Metadata
Metadata
Assignees
Labels
A-PresenceO-OccasionalAffects or can be seen by some users regularly or most users rarelyAffects or can be seen by some users regularly or most users rarelyS-MinorImpairs non-critical functionality or suitable workarounds existImpairs non-critical functionality or suitable workarounds existT-Defect