element-hq / element-hq/element-ios

iOS SDK is not updating the list of tracked user/devices after loading members of a Lazy Loaded room

Open
#5,158 1 comment 0 reactions 0 assignees View on GitHub
A-E2EE A-SDK O-Frequent S-Minor T-Defect
Dominant language
Swift
Stars
1.8k
Forks
544
PR merge metrics
PR metrics pending

Description

### Steps to reproduce

The first time an API call to members/ is made on an e2e room the MXDeviceList Manager is not updated to track the full user list (like the js-sdk is doing [here](https://github.com/matrix-org/matrix-js-sdk/blob/43bc09f392f871b20552e2751addfe906591891f/src/models/room.ts#L712))

### Outcome

Depending on the PreSharingStrategy, some users might not be tracked at all (and wont receive e2e messages)

The default strategy should be ok thus, because for example in app shareEncryptionKeys is called and then will do a ensureEncryptionInRoom
Any how tracking after a load from server would be more efficient as it could start downloading keys earlier

Contributor guide

Open the contributing guide

Research direction

Start by tracing the iOS handling of the `members/` response for a lazy-loaded room and how it updates the `MXDeviceList Manager`; compare the behavior with the linked JavaScript SDK `room.ts` reference. Check how `PreSharingStrategy` affects tracking, and consider the issue done when the full user list is tracked after loading members so key downloads can begin.

Written by the indexing model from the issue text.

Assessment

Tech stack
swift
Domain
mobile, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.