Open hughns opened 1 week ago
This can be summarised as the following changes:
timeline: $91M -> $q5m
state: $9mF -> $91M
timeline: $q5m -> $aem
state: $91M -> $q5m
timeline: $aem -> $8LD
Which is roughly:
Where bottom is most recent and background colour is the state groups.
If you look at the DB output, which is ordered by stream_ordering
you can see that the state keeps bouncing back and forth. This is likely confusing the algorithm for computing the state deltas to send to clients, due to poor handling of these cases in Synapse. The fix for this is probably to move to tracking state changes via current state, but that is not a small change.
When running Element Call embedded within Element Web using the "New group call experience" labs feature I sometimes see a behaviour where I attempt to start a room call and after pressing "Join call" I get returned to the timeline rather than actually entering the call.
In the console you see
The widget died; treating this as a user hangup logged
@toger5 had spotted this previously and sent messages in #matrix-dev about it. The message describing when this was observed matches my own observations:
Here is how it looks from a UX point of view:
https://github.com/element-hq/element-call/assets/6955675/30d6fa12-9838-4ca3-af40-5a8178dd4dbb
When looking at it I also came to the conclusion that the sequence of room rate events being (re-)emitted and (re-)processed by https://github.com/matrix-org/matrix-js-sdk/blob/d90292bff5ed026fba72b1ffa8b5284b1fb76577/src/matrixrtc/MatrixRTCSessionManager.ts#L133-L148 that causes an issue.
How I originally came on to this issue was that I was looking at https://github.com/element-hq/element-call/issues/2415 and found that the key distribution failed after encountering this behaviour. I will add some context on that issue shortly too.
Possibly related issues:
js-sdk
data model you use.Thoughts:
MatrixRTCSessionManager
is not suitable