element-hq / element-hq/element-meta
Unable To Decrypt meta issue
- Dominant language
- No language data
- Stars
- 112
- Forks
- 25
- Avg merge
- 6h 6m
- Merged PRs (30d)
- 4
Description
This is the meta issue relating to all "Unable to Decrypt" problems, a.k.a "Waiting for this message, this may take a while", aka "UISI" [1].
There are many potential causes of this issue; a detailed list is below. Many of the causes are fixed in modern clients, but there are still a number outstanding.
**If you receive an "unable to decrypt" message**: we need your help to resolve the problem! The information below describes how to send us the logs we need to understand what went wrong in your particular case.
* [1]: A decryption failure normally manifests when the recipient doesn't receive the keys for a particular encryption session; hence the acronym UISI: "Unknown inbound session ID". Nowadays the acronym UTD (unable to decrypt) is generally preferred.
## Needed information to resolve a reported issue
Reports from users are hugely helpful in identifying and prioritising the causes of Unable to Decrypt errors.
In order to properly debug an Unable To Decrypt error, we need logs from the receiver of the message (the one seeing the issue) **and those from the sender**. We generally can't debug issues without logs from both sides. Instructions on sending problem reports (aka "rageshakes") from within various clients are below.
In your problem report, please use the word "decrypt" or "UTD", and **identify which event you can't read**. Either include the event ID, or something like `message from @dave:example.com at 10:10`. For example, you might write `UTD $173031096849423vSpOu:matrix.org`.
**If you'd like us to feed back to you on why you can't decrypt a message, open a *new* issue in the Github project for your client, and mention that issue in your problem report as well.**
On the sender side, the description is less important: just write "Bob can't decrypt me" or something.
**Sending a rageshake from Element Web:**
- Click on your avatar in top left part of the screen.
- Select "All Settings".
- Select "Help & About".
- Fill in the description as above.
- Then click on the `Send logs` button.
(Protip: although the dialog tells you you need to create a github issue, that is only necessary if you want us to feed back to you about what went wrong.)
Alternatively:
- From the composer in any room, type `/rageshake `, where `` is as above.
- A dialog box opens. Click on the `Send logs` button.
**Sending a rageshake from Element X:**
- Click on your avatar in the top left part of the screen.
- Select "Report a problem".
- Enter a description, as above.
- Ensure that "Allow logs" is enabled.
- Click "Send".
**How to send a rageshake from (classic) Element Android:**
- Tap on the top right button on the home screen.
- Select `Report Bug`.
**How to send a rageshake from (classic) element iOS:**
- Open the top left drawer.
- Select the `Feedback` button at the bottom.
----
## Causes of Unable to Decrypt errors
We categorize the main sources of UISI errors as follow:
### Client Issues
#### Sender Side
- [x] ~~The sender failed to send the keys. There’s no consistent retry logic on network error, so key sending is fragile. https://github.com/element-hq/element-meta/issues/673. Test: [TestClientRetriesSendToDevice](https://github.com/matrix-org/complement-crypto/blob/main/tests/to_device_test.go#L19)~~
- [x] ~~https://github.com/element-hq/element-web/issues/20962~~
- [x] ~~The keys may be sent slowly:~~
- [x] ~~https://github.com/element-hq/element-web/issues/24680 Test: [complement-crypto#34](https://github.com/matrix-org/complement-crypto/issues/34)~~
- [x] ~~https://github.com/element-hq/element-web/issues/24681~~
- [x] ~~Sharing historical room keys on invite is slow and should prioritise recent messages https://github.com/vector-im/element-web/issues/23778~~
- [x] ~~https://github.com/vector-im/element-web/issues/24138~~
- [x] ~~https://github.com/vector-im/element-web/issues/23792~~
- [x] ~~https://github.com/matrix-org/matrix-rust-sdk/issues/3127~~
- [ ] https://github.com/element-hq/element-ios/issues/7751
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/1415
- [ ] https://github.com/element-hq/element-web/issues/31842
- [ ] https://github.com/element-hq/element-web/issues/27285
- [ ] https://github.com/element-hq/element-web/issues/27334
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/3354
- [x] https://github.com/element-hq/element-meta/issues/2425
- [ ] Delayed membership responses in /sync cause UTDs:
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/3622
- [ ] https://github.com/matrix-org/matrix-js-sdk/issues/4291
- [ ] https://github.com/element-hq/element-android/issues/8873
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/3959
- [x] https://github.com/element-hq/element-ios/issues/7844
- [x] https://github.com/element-hq/element-call/issues/2907
- [ ] https://github.com/element-hq/element-android/issues/9009
- [ ] https://github.com/element-hq/element-android/issues/9030
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/5061
- [ ] https://github.com/element-hq/element-meta/issues/2450
- [x] https://github.com/element-hq/synapse/issues/19478
- [ ] https://github.com/element-hq/element-meta/issues/3315
#### Receiver Side
- [x] ~~https://github.com/vector-im/element-meta/issues/762 Test: [complement-crypto#37](https://github.com/matrix-org/complement-crypto/issues/37)~~
- [x] ~~https://github.com/element-hq/element-web/issues/23113~~
- [x] ~~https://github.com/vector-im/element-android/issues/5905 (No test since no specific testcase is known - closed because Rust is sufficiently different)~~
- [x] ~~https://github.com/vector-im/element-web/issues/24450~~
- [x] ~~https://github.com/vector-im/element-web/issues/24682 Test: [complement-crypto#38](https://github.com/matrix-org/complement-crypto/issues/38)~~
- [x] ~~https://github.com/element-hq/element-x-android/issues/2520~~
- [ ] Broken olm: Olm sessions sometimes get out of sync, resulting in undecryptable messages.
- [x] ~~https://github.com/vector-im/element-ios/issues/7479 (Cannot reproduce, so no test)~~
- [x] ~https://github.com/vector-im/element-ios/issues/7480~
- [x] ~~https://github.com/vector-im/element-web/issues/25723 Test: [complement-crypto#35](https://github.com/matrix-org/complement-crypto/issues/35)~~
- [x] ~~Element X iOS: https://github.com/matrix-org/matrix-rust-sdk/issues/3110~~
- [x] https://github.com/element-hq/element-meta/issues/2356
- [ ] https://github.com/element-hq/element-meta/issues/2310
- [x] https://github.com/vector-im/element-web/issues/14174
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/3768
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/3993
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/4189
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/4196
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/4444
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/4445
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/5474
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/5447
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/5703
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/5798
- [x] https://github.com/matrix-org/matrix-rust-sdk/issues/6133
- [ ] https://github.com/element-hq/element-meta/issues/2421
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/3427
- [ ] https://github.com/element-hq/element-x-android/issues/3471
- [ ] https://github.com/element-hq/element-web/issues/28016
- [ ] https://github.com/element-hq/element-web/issues/28060
- [ ] https://github.com/element-hq/element-web/issues/28312
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/4429
- [ ] https://github.com/element-hq/element-x-ios/issues/4371
- [ ] https://github.com/element-hq/element-web/issues/32822
##### Messages you should not expect to be able to decrypt, but where the UI could be clearer about it
- [x] ~Some room history \(pre-invite for example\), should never be decryptable by you. This kind of history should probably be hidden or displayed differently.~
- [x] https://github.com/element-hq/element-meta/issues/2313: New devices cannot decrypt existing history until they have access to key backup. Now (April 2025) mitigated on EX and EW with clearer messaging, but classic clients still give confusing messaging.
- [ ] https://github.com/element-hq/element-web/issues/27577
- [ ] https://github.com/element-hq/element-meta/issues/2610
### Server Issues
- [x] ~To-device messages can take a long time to get sent over federation~
- [x] ~https://github.com/matrix-org/synapse/issues/15161~
- [x] ~https://github.com/element-hq/synapse/issues/16680~
- [ ] https://github.com/element-hq/synapse/issues/8691
- [x] ~To-device messages may get lost on the server~
- [x] ~https://github.com/matrix-org/synapse/issues/9533~
- [x] ~https://github.com/matrix-org/synapse/issues/15335~
- [x] ~https://github.com/matrix-org/synapse/issues/16681~
- [x] ~https://github.com/element-hq/synapse/issues/19366~
- [x] ~https://github.com/matrix-org/sliding-sync/pull/390~
- [x] ~https://github.com/element-hq/synapse/issues/17117~
- [ ] https://github.com/element-hq/element-meta/issues/2411: E2E Device lists can get out of sync with the devices actually present in a room, causing keys not to be sent. This can happen for various reasons: see the linked issue.
- [x] https://github.com/element-hq/element-meta/issues/2155
- [ ] https://github.com/element-hq/synapse/issues/16940
- [ ] https://github.com/element-hq/synapse/issues/17050
- [x] https://github.com/element-hq/synapse/issues/17035
- [ ] https://github.com/element-hq/synapse/issues/18143
- [ ] https://github.com/element-hq/synapse/issues/19795
### Key Backups
- [x] ~https://github.com/matrix-org/matrix-rust-sdk/issues/3197~
- [x] ~https://github.com/element-hq/element-meta/issues/2338~
- [x] ~https://github.com/famedly/matrix-dart-sdk/issues/1739~
- [ ] https://github.com/element-hq/element-meta/issues/2322 (only a problem on Element Classic nowadays I think?)
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/3875
- [x] https://github.com/element-hq/element-meta/issues/2595
- [ ] https://github.com/element-hq/element-meta/issues/2596
- [ ] https://github.com/element-hq/element-web/issues/29872
- [ ] https://github.com/element-hq/element-meta/issues/2891
- [ ] https://github.com/element-hq/element-meta/issues/2642
### Protocol Issues
- [x] ~A client has been offline for too long and the senders have run out of one time keys. This will be addressed by the proposal to maintain fallback keys.~
- [x] https://github.com/matrix-org/matrix-spec/issues/1209
- [ ] https://github.com/matrix-org/matrix-spec/issues/1123
- [ ] https://github.com/matrix-org/matrix-spec/issues/1124
- [ ] https://github.com/matrix-org/matrix-spec/issues/1659
- [ ] https://github.com/element-hq/element-meta/issues/2154
- [ ] https://github.com/element-hq/element-meta/issues/2268
- [ ] https://github.com/element-hq/element-meta/issues/2374
- [ ] https://github.com/vector-im/element-meta/issues/646
Contributor guide
No contributing guide indexed for this repository
Research direction
This is a cross-project meta issue rather than a file-level task; no repository file, test, or entry point is identified. Start by reviewing the unchecked linked issues and the rageshake guidance, then confirm any selected cause is resolved in its owning project and update this inventory with the relevant status.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100