You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using the event cache with storage enabled, events are persisted in the database. Since room keys may not always arrive in the same sync as the event—sometimes arriving later—it is expected that m.room.encrypted events will be stored in the event cache.
Upon reloading and inserting these events into the timeline, the initial chunk of events will get decrypted during timeline construction:
// The events we're injecting might be encrypted events, but we might
// have received the room key to decrypt them while nobody was listening to the
// `m.room_key` event, let's retry now.
timeline.retry_decryption_for_all_events().await;
}
However, when additional events are loaded from the cache, no decryption logic is exists. As a result, undecryptable events (UTDs) will not fix themselves unless the application explicitly requests a redecryption.
The text was updated successfully, but these errors were encountered:
make sure that paginations that come from the cache have an Cache event origin. (I think that's not the case, and they're marked as Pagination if coming from network || storage.)
then in the timeline, when handling vector diffs which do any kind of insertions, for events originated from the cache, spawn a task trying to decrypt them (or send them via a channel, or whatever is done at the moment to signal that some items must be re-decrypted).
This patch fixes a bug where events coming from the event cache might be
encrypted, see matrix-org#4762
to learn more.
This patch updates the `room_event_cache_updates_task` to call
`TimelineController::retry_event_decryption` if the origin is `Cache`.
When using the event cache with storage enabled, events are persisted in the database. Since room keys may not always arrive in the same sync as the event—sometimes arriving later—it is expected that m.room.encrypted events will be stored in the event cache.
Upon reloading and inserting these events into the timeline, the initial chunk of events will get decrypted during timeline construction:
matrix-rust-sdk/crates/matrix-sdk-ui/src/timeline/builder.rs
Lines 490 to 495 in 6c9b1ef
However, when additional events are loaded from the cache, no decryption logic is exists. As a result, undecryptable events (UTDs) will not fix themselves unless the application explicitly requests a redecryption.
The text was updated successfully, but these errors were encountered: