It is a signald limitation that if a contact has a new identity (ie, re-registered) and sends messages, they won't be decrypted and you cannot read them.
However, according to finn (signald maintainer), it should be possible to detect that this happens if an IncomingMessagev1
without data_message
is emitted, and that listing the contact's identities through get_identities()
reveals an UNTRUSTED
identity. We could use this to inform the user and let them trust the new identity (or do it automatically, ideally this should be an option exposed to users).
I am unsure what the exact payload of an "not-decrypted" incoming message looks like, because no data_message can also simply occur on typing events.
Slidge is moving away from sourcehut. For updates on this issue, visit codeberg.
nicoco referenced this ticket in commit 3e0cff2.