Skip to content

Store profile keys for group v2 requesting members - #2031

Merged
AsamK merged 1 commit into
AsamK:masterfrom
PatrickDattilio:store-profile-keys-for-requesting-members
Apr 27, 2026
Merged

Store profile keys for group v2 requesting members#2031
AsamK merged 1 commit into
AsamK:masterfrom
PatrickDattilio:store-profile-keys-for-requesting-members

Conversation

@PatrickDattilio

Copy link
Copy Markdown
Contributor

Fixes a gap where storeProfileKeysFromMembers only ingested profile keys from DecryptedGroup.members, not from
equestingMembers (as DecryptedRequestingMember).

Symptom: After a group refresh, an admin (or signal-cli) that had not previously exchanged with someone in the join queue could not decrypt their profile, so e.g. \listContacts\ / UIs showed empty names for those requesters, while the official clients could still show them.

Change: Reuse the same store-if-missing logic for each requesting member, using the existing proto types so \libsignal-cli\ does not need a direct \com.google.protobuf\ compile dependency in \GroupHelper.

Testing: We run this in a downstream Docker image; behavior verified against a real group with a pending join queue.

cc @AsamK

Made with Cursor

When filling or updating a V2 group, profile keys were copied from
DecryptedGroup.members into the local profile store but not from
requestingMembers. Admins who never had a prior session with a user in
the join queue then lacked profile keys and could not decrypt profiles
(e.g. for listContacts).

Also process DecryptedRequestingMember entries the same way as full
members, using DecryptedMember / DecryptedRequestingMember types so the
lib module does not require a direct protobuf dependency.

Made-with: Cursor
@AsamK
AsamK merged commit c9e2504 into AsamK:master Apr 27, 2026
6 checks passed
@AsamK AsamK added this to the next-version milestone Apr 27, 2026
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.

2 participants