From 1b2077614b2128a7c7a961f6de32c355dbf4825b Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Thu, 19 Dec 2024 15:01:53 -0800 Subject: [PATCH 01/27] Capture and locally handle actions specific to a RoomScreen instance This ensures other RoomScreen widget instances cannot possibly handle actions meant for a different RoomScreen accidentally. --- src/home/room_screen.rs | 213 +++++++++++++++++++++++----------------- 1 file changed, 122 insertions(+), 91 deletions(-) diff --git a/src/home/room_screen.rs b/src/home/room_screen.rs index 469c833..95906ce 100644 --- a/src/home/room_screen.rs +++ b/src/home/room_screen.rs @@ -1131,89 +1131,6 @@ impl Widget for RoomScreen { ); } } - - // Handle a link being clicked. - if let HtmlLinkAction::Clicked { url, .. } = action.as_widget_action().cast() { - // A closure that handles both MatrixToUri and MatrixUri links. - let mut handle_uri = |id: &MatrixId, _via: &[OwnedServerName]| -> bool { - match id { - MatrixId::Room(room_id) => { - if self.room_id.as_ref() == Some(room_id) { - return true; - } - if let Some(_known_room) = get_client().and_then(|c| c.get_room(room_id)) { - log!("TODO: jump to known room {}", room_id); - } else { - log!("TODO: fetch and display room preview for room {}", room_id); - } - true - } - MatrixId::RoomAlias(room_alias) => { - log!("TODO: open room alias {}", room_alias); - // TODO: open a room loading screen that shows a spinner - // while our background async task calls Client::resolve_room_alias() - // and then either jumps to the room if known, or fetches and displays - // a room preview for that room. - true - } - MatrixId::User(user_id) => { - log!("Opening matrix.to user link for {}", user_id); - - // There is no synchronous way to get the user's full profile info - // including the details of their room membership, - // so we fill in with the details we *do* know currently, - // show the UserProfileSlidingPane, and then after that, - // the UserProfileSlidingPane itself will fire off - // an async request to get the rest of the details. - self.show_user_profile( - cx, - &pane, - UserProfilePaneInfo { - profile_and_room_id: UserProfileAndRoomId { - user_profile: UserProfile { - user_id: user_id.to_owned(), - username: None, - avatar_state: AvatarState::Unknown, - }, - room_id: self.room_id.clone().unwrap(), - }, - room_name: self.room_name.clone(), - // TODO: use the extra `via` parameters - room_member: None, - }, - ); - true - } - MatrixId::Event(room_id, event_id) => { - log!("TODO: open event {} in room {}", event_id, room_id); - // TODO: this requires the same first step as the `MatrixId::Room` case above, - // but then we need to call Room::event_with_context() to get the event - // and its context (surrounding events ?). - true - } - _ => false, - } - }; - - let mut link_was_handled = false; - if let Ok(matrix_to_uri) = MatrixToUri::parse(&url) { - link_was_handled |= handle_uri(matrix_to_uri.id(), matrix_to_uri.via()); - } - if let Ok(matrix_uri) = MatrixUri::parse(&url) { - link_was_handled |= handle_uri(matrix_uri.id(), matrix_uri.via()); - } - - if !link_was_handled { - log!("Opening URL \"{}\"", url); - if let Err(e) = robius_open::Uri::new(&url).open() { - error!("Failed to open URL {:?}. Error: {:?}", url, e); - } - } - } - - if let LoadingModalAction::Close = action.as_widget_action().cast() { - self.modal(id!(loading_modal)).close(cx); - } } // Set visibility of loading message banner based of pagination logic @@ -1262,14 +1179,14 @@ impl Widget for RoomScreen { } // Handle the send message button being clicked and enter key being pressed. - let msg_input_widget = self.text_input(id!(message_input)); - let send_message_shortcut_pressed = msg_input_widget + let message_input = self.text_input(id!(message_input)); + let send_message_shortcut_pressed = message_input .key_down_unhandled(actions) .is_some_and(|ke| ke.key_code == KeyCode::ReturnKey && ke.modifiers.is_primary()); if send_message_shortcut_pressed || self.button(id!(send_message_button)).clicked(actions) { - let entered_text = msg_input_widget.text().trim().to_string(); + let entered_text = message_input.text().trim().to_string(); if !entered_text.is_empty() { let room_id = self.room_id.clone().unwrap(); log!("Sending message to room {}: {:?}", room_id, entered_text); @@ -1290,7 +1207,7 @@ impl Widget for RoomScreen { }); self.clear_replying_to(); - msg_input_widget.set_text_and_redraw(cx, ""); + message_input.set_text_and_redraw(cx, ""); } } @@ -1302,7 +1219,7 @@ impl Widget for RoomScreen { ); // Handle a typing action on the message input box. - if let Some(new_text) = self.text_input(id!(message_input)).changed(actions) { + if let Some(new_text) = message_input.changed(actions) { submit_async_request(MatrixRequest::SendTypingNotice { room_id: self.room_id.clone().unwrap(), typing: !new_text.is_empty(), @@ -1333,9 +1250,31 @@ impl Widget for RoomScreen { // Forward the event to the user profile sliding pane, // preventing the underlying timeline view from receiving it. pane.handle_event(cx, event, scope); - } else { - // Forward the event to the inner timeline view. - self.view.handle_event(cx, event, scope); + } + else { + // Forward the event to the inner timeline view, but capture any actions it produces + // such that we can handle the ones relevant to only THIS RoomScreen widget right here and now, + // ensuring they are not mistakenly handled by other RoomScreen widget instances. + let mut actions_generated_within_this_room_screen = cx.capture_actions(|cx| + self.view.handle_event(cx, event, scope) + ); + // Here, we handle and remove any general actions that are relevant to only this RoomScreen. + // Removing the handled actions ensures they are not mistakenly handled by other RoomScreen widget instances. + actions_generated_within_this_room_screen.retain(|action| { + if self.handle_link_clicked(cx, action, &pane) { + return false; + } + + if let LoadingModalAction::Close = action.as_widget_action().cast() { + self.modal(id!(loading_modal)).close(cx); + return false; + } + + // Keep all unhandled actions so we can add them back to the global action list below. + true + }); + // Add back any unhandled actions to the global action list. + cx.extend_actions(actions_generated_within_this_room_screen); } } @@ -1766,6 +1705,98 @@ impl RoomScreen { } } + + /// Handles a link being clicked in any child widgets of this RoomScreen. + /// + /// Returns `true` if the given `action` was indeed an `HtmlLinkAction::Clicked` action. + fn handle_link_clicked( + &mut self, + cx: &mut Cx, + action: &Action, + pane: &UserProfileSlidingPaneRef, + ) -> bool { + if let HtmlLinkAction::Clicked { url, .. } = action.as_widget_action().cast() { + // A closure that handles both MatrixToUri and MatrixUri links. + let mut handle_uri = |id: &MatrixId, _via: &[OwnedServerName]| -> bool { + match id { + MatrixId::Room(room_id) => { + if self.room_id.as_ref() == Some(room_id) { + return true; + } + if let Some(_known_room) = get_client().and_then(|c| c.get_room(room_id)) { + log!("TODO: jump to known room {}", room_id); + } else { + log!("TODO: fetch and display room preview for room {}", room_id); + } + true + } + MatrixId::RoomAlias(room_alias) => { + log!("TODO: open room alias {}", room_alias); + // TODO: open a room loading screen that shows a spinner + // while our background async task calls Client::resolve_room_alias() + // and then either jumps to the room if known, or fetches and displays + // a room preview for that room. + true + } + MatrixId::User(user_id) => { + log!("Opening matrix.to user link for {}", user_id); + + // There is no synchronous way to get the user's full profile info + // including the details of their room membership, + // so we fill in with the details we *do* know currently, + // show the UserProfileSlidingPane, and then after that, + // the UserProfileSlidingPane itself will fire off + // an async request to get the rest of the details. + self.show_user_profile( + cx, + &pane, + UserProfilePaneInfo { + profile_and_room_id: UserProfileAndRoomId { + user_profile: UserProfile { + user_id: user_id.to_owned(), + username: None, + avatar_state: AvatarState::Unknown, + }, + room_id: self.room_id.clone().unwrap(), + }, + room_name: self.room_name.clone(), + // TODO: use the extra `via` parameters + room_member: None, + }, + ); + true + } + MatrixId::Event(room_id, event_id) => { + log!("TODO: open event {} in room {}", event_id, room_id); + // TODO: this requires the same first step as the `MatrixId::Room` case above, + // but then we need to call Room::event_with_context() to get the event + // and its context (surrounding events ?). + true + } + _ => false, + } + }; + + let mut link_was_handled = false; + if let Ok(matrix_to_uri) = MatrixToUri::parse(&url) { + link_was_handled |= handle_uri(matrix_to_uri.id(), matrix_to_uri.via()); + } + if let Ok(matrix_uri) = MatrixUri::parse(&url) { + link_was_handled |= handle_uri(matrix_uri.id(), matrix_uri.via()); + } + + if !link_was_handled { + log!("Opening URL \"{}\"", url); + if let Err(e) = robius_open::Uri::new(&url).open() { + error!("Failed to open URL {:?}. Error: {:?}", url, e); + } + } + true + } else { + false + } + } + /// Shows the user profile sliding pane with the given avatar info. fn show_user_profile( &mut self, From a616381e103193798981a90683bce8cfe8b90981 Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Thu, 19 Dec 2024 15:10:57 -0800 Subject: [PATCH 02/27] clippy --- src/home/room_screen.rs | 2 +- src/shared/adaptive_view.rs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/home/room_screen.rs b/src/home/room_screen.rs index 95906ce..886865c 100644 --- a/src/home/room_screen.rs +++ b/src/home/room_screen.rs @@ -1749,7 +1749,7 @@ impl RoomScreen { // an async request to get the rest of the details. self.show_user_profile( cx, - &pane, + pane, UserProfilePaneInfo { profile_and_room_id: UserProfileAndRoomId { user_profile: UserProfile { diff --git a/src/shared/adaptive_view.rs b/src/shared/adaptive_view.rs index b1e2e9e..25a8610 100644 --- a/src/shared/adaptive_view.rs +++ b/src/shared/adaptive_view.rs @@ -324,6 +324,7 @@ pub type VariantSelector = dyn FnMut(&mut Cx, &ParentSize) -> LiveId; type ParentSize = DVec2; /// A context that is used to determine which view to display in an `AdaptiveView` widget. +/// /// DisplayContext is stored in a global context so that they can be accessed from multiple `AdaptiveView` widget instances. /// This will soon be replaced by having this context directly in Makepad's Cx. /// Later to be expanded with more context data like platform information, accessibility settings, etc. From 6cf61104952a30c756d66244ab78225e292b0222 Mon Sep 17 00:00:00 2001 From: Kevin Boos <1139460+kevinaboos@users.noreply.github.com> Date: Fri, 20 Dec 2024 14:03:49 -0800 Subject: [PATCH 03/27] Update feature tracker in README --- README.md | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 114cbf5..5a2702e 100644 --- a/README.md +++ b/README.md @@ -91,26 +91,28 @@ These are generally sorted in order of priority. If you're interested in helping - [x] View timeline of events in a single room - [x] Fetch and display room avatars - [x] Fetch user profiles (displayable names) +- [x] Cache user profiles and avatars +- [x] Cache fetched media on a per-room basis - [x] Fetch and display user profile avatars -- [x] Backwards pagination (upon viewing a room timeline) +- [x] Backwards pagination to view a room's older history - [x] Dynamic backwards pagination based on scroll position/movement: https://github.com/project-robius/robrix/issues/109 - [x] Loading animation while waiting for pagination request: https://github.com/project-robius/robrix/issues/109 -- [x] Stable positioning of events during simple timeline update -- [x] Stable positioning of events during complex/multi-part timeline update -- [x] Display simple text-only messages +- [x] Stable vertical position of events during timeline update +- [x] Display simple plaintext messages - [x] Display image messages (PNG, JPEG) -- [x] Rich text formatting for message bodies +- [x] HTML (rich text) formatting for message bodies - [x] Display reactions (annotations) - [x] Handle opening links on click - [x] Linkify plaintext hyperlinks -- [x] Reply previews above messages: https://github.com/project-robius/robrix/issues/82 -- [x] Send messages (standalone, no replies) +- [x] Show reply previews above messages: https://github.com/project-robius/robrix/issues/82 +- [x] Send standalone messages - [x] Interactive reaction button, send reactions: https://github.com/project-robius/robrix/issues/115 -- [x] Reply button, send reply: https://github.com/project-robius/robrix/issues/83 -- [ ] Re-spawn timeline as focused on an old event after a full timeline clear: https://github.com/project-robius/robrix/issues/103 -- [ ] Display multimedia (audio/video/gif) message events: https://github.com/project-robius/robrix/issues/120 -- [ ] Collapsible/expandable view of contiguous "small" events: https://github.com/project-robius/robrix/issues/118 +- [x] Show reply button, send reply: https://github.com/project-robius/robrix/issues/83 - [x] E2EE device verification, decrypt message content: https://github.com/project-robius/robrix/issues/116 +- [ ] Display multimedia (audio/video/gif) message events: https://github.com/project-robius/robrix/issues/120 +- [ ] Re-spawn timeline as focused on an old event after a full timeline clear: https://github.com/project-robius/robrix/issues/103 + + ### Auxiliary/admin features: login, registration, settings - [x] Persistence of app session to disk: https://github.com/project-robius/robrix/issues/112 @@ -118,6 +120,7 @@ These are generally sorted in order of priority. If you're interested in helping - [x] SSO, other 3rd-party auth providers login screen: https://github.com/project-robius/robrix/issues/114 - [x] Side panel showing detailed user profile info (click on their Avatar) - [x] Ignore and unignore users (see known issues) +- [ ] Collapsible/expandable view of contiguous "small" events: https://github.com/project-robius/robrix/issues/118 - [ ] User settings screen - [ ] Dedicated view of spaces - [ ] Dedicated view of direct messages (DMs): https://github.com/project-robius/robrix/issues/139 From c92c4745a5c1f578898586b56a2afeecb3da58e8 Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Fri, 27 Dec 2024 00:39:12 -0800 Subject: [PATCH 04/27] Redesign user profile cache to fetch missing cache entries * Also, track in-flight fetch requests in order to ensure that redundant requests are not re-issued. * Fix how user profile info is used in the user profile sliding pane, and ensure that an existing avatar image isn't replaced with a not-yet-loaded new one, until that new one is fully loaded. * Do the same for user display names too. --- Cargo.lock | 52 +++---- src/home/room_screen.rs | 26 +++- src/profile/user_profile.rs | 52 ++++--- src/profile/user_profile_cache.rs | 233 +++++++++++++++++------------- src/sliding_sync.rs | 31 ++-- 5 files changed, 235 insertions(+), 159 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5d055f2..1b7a13b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1981,7 +1981,7 @@ dependencies = [ [[package]] name = "makepad-derive-live" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-live-id", "makepad-micro-proc-macro", @@ -1990,7 +1990,7 @@ dependencies = [ [[package]] name = "makepad-derive-wasm-bridge" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-micro-proc-macro", ] @@ -1998,7 +1998,7 @@ dependencies = [ [[package]] name = "makepad-derive-widget" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-live-id", "makepad-micro-proc-macro", @@ -2007,7 +2007,7 @@ dependencies = [ [[package]] name = "makepad-draw" version = "0.6.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "ab_glyph_rasterizer", "fxhash", @@ -2024,17 +2024,17 @@ dependencies = [ [[package]] name = "makepad-futures" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" [[package]] name = "makepad-futures-legacy" version = "0.7.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" [[package]] name = "makepad-html" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-live-id", ] @@ -2042,7 +2042,7 @@ dependencies = [ [[package]] name = "makepad-http" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" [[package]] name = "makepad-jni-sys" @@ -2053,7 +2053,7 @@ checksum = "9775cbec5fa0647500c3e5de7c850280a88335d1d2d770e5aa2332b801ba7064" [[package]] name = "makepad-live-compiler" version = "0.5.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-derive-live", "makepad-live-tokenizer", @@ -2063,7 +2063,7 @@ dependencies = [ [[package]] name = "makepad-live-id" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-live-id-macros", ] @@ -2071,7 +2071,7 @@ dependencies = [ [[package]] name = "makepad-live-id-macros" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-micro-proc-macro", ] @@ -2079,7 +2079,7 @@ dependencies = [ [[package]] name = "makepad-live-tokenizer" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-live-id", "makepad-math", @@ -2089,7 +2089,7 @@ dependencies = [ [[package]] name = "makepad-markdown" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-live-id", ] @@ -2097,17 +2097,17 @@ dependencies = [ [[package]] name = "makepad-math" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" [[package]] name = "makepad-micro-proc-macro" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" [[package]] name = "makepad-micro-serde" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-live-id", "makepad-micro-serde-derive", @@ -2116,7 +2116,7 @@ dependencies = [ [[package]] name = "makepad-micro-serde-derive" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-micro-proc-macro", ] @@ -2124,12 +2124,12 @@ dependencies = [ [[package]] name = "makepad-objc-sys" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" [[package]] name = "makepad-platform" version = "0.6.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "hilog-sys", "makepad-android-state", @@ -2152,7 +2152,7 @@ dependencies = [ [[package]] name = "makepad-rustybuzz" version = "0.8.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2167,7 +2167,7 @@ dependencies = [ [[package]] name = "makepad-shader-compiler" version = "0.5.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-live-compiler", ] @@ -2175,7 +2175,7 @@ dependencies = [ [[package]] name = "makepad-vector" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "resvg", "ttf-parser", @@ -2184,7 +2184,7 @@ dependencies = [ [[package]] name = "makepad-wasm-bridge" version = "0.4.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-derive-wasm-bridge", "makepad-live-id", @@ -2193,7 +2193,7 @@ dependencies = [ [[package]] name = "makepad-widgets" version = "0.6.0" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "makepad-derive-widget", "makepad-draw", @@ -2207,7 +2207,7 @@ dependencies = [ [[package]] name = "makepad-zune-png" version = "0.4.10" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" dependencies = [ "zune-core", "zune-inflate", @@ -4323,7 +4323,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ttf-parser" version = "0.21.1" -source = "git+https://github.com/makepad/makepad?branch=rik#5e5e260235ee0049aa1287f8f19c283d69c35db4" +source = "git+https://github.com/makepad/makepad?branch=rik#406783658b42e9c037249f2649853cda1164aace" [[package]] name = "typenum" diff --git a/src/home/room_screen.rs b/src/home/room_screen.rs index 2dbd1fb..9738396 100644 --- a/src/home/room_screen.rs +++ b/src/home/room_screen.rs @@ -1017,6 +1017,13 @@ impl Widget for RoomScreen { // that its timeline events have been updated in the background. if let Event::Signal = event { self.process_timeline_updates(cx, &portal_list); + + // Ideally we would do this elsewhere on the main thread, because it's not room-specific, + // but it doesn't hurt to do it here. + // TODO: move this up a layer to something higher in the UI tree, + // and wrap it in a `if let Event::Signal` conditional. + user_profile_cache::process_user_profile_updates(cx); + avatar_cache::process_avatar_updates(cx); } if let Event::Actions(actions) = event { @@ -3628,10 +3635,12 @@ fn set_avatar_and_get_username( // Get the display name and avatar URL from the sender's profile, if available, // or if the profile isn't ready, fall back to qeurying our user profile cache. let (username_opt, avatar_state) = match sender_profile { - TimelineDetails::Ready(profile) => ( - profile.display_name.clone(), - AvatarState::Known(profile.avatar_url.clone()), - ), + TimelineDetails::Ready(profile) => { + ( + profile.display_name.clone(), + AvatarState::Known(profile.avatar_url.clone()), + ) + } not_ready => { if matches!(not_ready, TimelineDetails::Unavailable) { if let Some(event_id) = event_id { @@ -3642,7 +3651,7 @@ fn set_avatar_and_get_username( } } // log!("populate_message_view(): sender profile not ready yet for event {not_ready:?}"); - user_profile_cache::with_user_profile(cx, sender_user_id, |profile, room_members| { + user_profile_cache::with_user_profile(cx, sender_user_id.to_owned(), true, |profile, room_members| { room_members .get(room_id) .map(|rm| { @@ -3651,7 +3660,12 @@ fn set_avatar_and_get_username( AvatarState::Known(rm.avatar_url().map(|u| u.to_owned())), ) }) - .unwrap_or_else(|| (profile.username.clone(), profile.avatar_state.clone())) + .unwrap_or_else(|| { + ( + profile.username.clone(), + profile.avatar_state.clone(), + ) + }) }) .unwrap_or((None, AvatarState::Unknown)) } diff --git a/src/profile/user_profile.rs b/src/profile/user_profile.rs index 16f8745..d0a95c4 100644 --- a/src/profile/user_profile.rs +++ b/src/profile/user_profile.rs @@ -5,7 +5,7 @@ use crate::{ avatar_cache::{self, AvatarCacheEntry}, shared::avatar::AvatarWidgetExt, sliding_sync::{get_client, is_user_ignored, submit_async_request, MatrixRequest}, utils }; -use super::user_profile_cache::{self, get_user_profile_and_room_member, get_user_room_member_info}; +use super::user_profile_cache::{self, get_user_profile_and_room_member}; /// The currently-known state of a user's avatar. #[derive(Clone, Debug)] @@ -429,7 +429,7 @@ impl Widget for UserProfileSlidingPane { return; } - // A UI Signal indicates this user profile was updated by a background task. + // A UI Signal indicates that this user profile's info may have been updated by a background task. if let Event::Signal = event { user_profile_cache::process_user_profile_updates(cx); avatar_cache::process_avatar_updates(cx); @@ -439,9 +439,11 @@ impl Widget for UserProfileSlidingPane { if let Some(our_info) = self.info.as_mut() { if let (Some(new_profile), room_member) = get_user_profile_and_room_member( cx, - &our_info.user_id, + our_info.user_id.clone(), &our_info.room_id, + false, ) { + let prev_avatar_state = our_info.avatar_state.clone(); our_info.user_profile = new_profile; our_info.room_member = room_member; // Use the avatar URI from the `room_member`, as it will be the most up-to-date @@ -457,6 +459,15 @@ impl Widget for UserProfileSlidingPane { our_info.avatar_state = AvatarState::Loaded(data); } } + // If the new avatar state is fully `Loaded`, keep it as is. + // If the new avatar state is *not* fully `Loaded`, but the previous one was, keep the previous one. + match (prev_avatar_state, &mut our_info.avatar_state) { + (_, AvatarState::Loaded(_)) => { } + (prev @ AvatarState::Loaded(_), existing_avatar_state ) => { + *existing_avatar_state = prev; + } + _ => { } + } redraw_this_pane = true; } } @@ -566,32 +577,39 @@ impl UserProfileSlidingPane { /// Sets the info to be displayed in this user profile sliding pane. /// /// If the `room_member` field is `None`, this function will attempt to - /// retrieve the user's room membership info from the local cache. - /// If the user's room membership info is not found in the cache, - /// it will submit a request to asynchronously fetch it from the server. + /// retrieve the user's room membership info from the local cache, + /// and then submit a request to asynchronously fetch it from the server + /// if it's not found in the cache. pub fn set_info(&mut self, _cx: &mut Cx, mut info: UserProfilePaneInfo) { if info.room_member.is_none() { - if let Some(room_member) = get_user_room_member_info( + if let (new_profile, Some(room_member)) = get_user_profile_and_room_member( _cx, - &info.user_id, + info.user_id.clone(), &info.room_id, + true, ) { log!("Found user {} room member info in cache", info.user_id); + // Update avatar state, preferring that of the room member info. if let Some(uri) = room_member.avatar_url() { info.avatar_state = AvatarState::Known(Some(uri.to_owned())); } + else if let Some(p) = new_profile.as_ref() { + match &p.avatar_state { + s @ AvatarState::Known(Some(_)) | s @ AvatarState::Loaded(_) => { + info.avatar_state = s.clone(); + } + _ => {} + } + } + // Update displayable username. + if info.username.is_none() { + info.username = room_member.display_name() + .map(|dn| dn.to_owned()) + .or_else(|| new_profile.and_then(|p| p.username.clone())); + } info.room_member = Some(room_member); } } - if info.room_member.is_none() { - log!("Did not find user {} room member info in cache, fetching from server.", info.user_id); - // TODO: use the extra `via` parameters from `matrix_to_uri.via()`. - submit_async_request(MatrixRequest::GetUserProfile { - user_id: info.user_id.to_owned(), - room_id: Some(info.room_id.clone()), - local_only: false, - }); - } if let AvatarState::Known(Some(uri)) = &info.avatar_state { if let AvatarCacheEntry::Loaded(data) = avatar_cache::get_or_fetch_avatar(_cx, uri.clone()) { info.avatar_state = AvatarState::Loaded(data); diff --git a/src/profile/user_profile_cache.rs b/src/profile/user_profile_cache.rs index 21abecd..08440ea 100644 --- a/src/profile/user_profile_cache.rs +++ b/src/profile/user_profile_cache.rs @@ -1,11 +1,15 @@ +//! A cache of user profiles and room membership info, indexed by user ID. +//! +//! The cache is only accessible from the main UI thread. + use crossbeam_queue::SegQueue; use makepad_widgets::{log, warning, Cx, SignalToUI}; use matrix_sdk::{room::RoomMember, ruma::{OwnedRoomId, OwnedUserId, RoomId, UserId}}; use std::{cell::RefCell, collections::{btree_map::Entry, BTreeMap}}; -use crate::profile::user_profile::AvatarState; +use crate::{profile::user_profile::AvatarState, sliding_sync::{submit_async_request, MatrixRequest}}; -use super::user_profile::{UserProfile, UserProfilePaneInfo}; +use super::user_profile::UserProfile; thread_local! { /// A cache of each user's profile and the rooms they are a member of, indexed by user ID. @@ -13,9 +17,14 @@ thread_local! { /// To be of any use, this cache must only be accessed by the main UI thread. static USER_PROFILE_CACHE: RefCell> = const { RefCell::new(BTreeMap::new()) }; } -struct UserProfileCacheEntry { - user_profile: UserProfile, - room_members: BTreeMap, +enum UserProfileCacheEntry { + /// A request has been issued and we're waiting for it to complete. + Requested, + /// The profile has been successfully loaded from the server. + Loaded { + user_profile: UserProfile, + rooms: BTreeMap, + }, } /// The queue of user profile updates waiting to be processed by the UI thread's event handler. @@ -55,56 +64,31 @@ impl UserProfileUpdate { } } - /// Applies this update to the given user profile pane info, - /// only if the user_id and room_id match that of the update. - /// - /// Returns `true` if the update resulted in any actual content changes. - #[allow(unused)] - fn apply_to_current_pane(&self, info: &mut UserProfilePaneInfo) -> bool { - match self { - UserProfileUpdate::Full { new_profile, room_id, room_member } => { - if info.user_id == new_profile.user_id { - info.profile_and_room_id.user_profile = new_profile.clone(); - if &info.room_id == room_id { - info.room_member = Some(room_member.clone()); - } - return true; - } - } - UserProfileUpdate::RoomMemberOnly { room_id, room_member } => { - log!("Applying RoomMemberOnly update to user profile pane info: user_id={}, room_id={}, ignored={}", - room_member.user_id(), room_id, room_member.is_ignored(), - ); - if info.user_id == room_member.user_id() && &info.room_id == room_id { - log!("RoomMemberOnly update matches user profile pane info, updating room member."); - info.room_member = Some(room_member.clone()); - return true; - } - } - UserProfileUpdate::UserProfileOnly(new_profile) => { - if info.user_id == new_profile.user_id { - info.profile_and_room_id.user_profile = new_profile.clone(); - return true; - } - } - } - false - } - /// Applies this update to the given user profile info cache. fn apply_to_cache(self, cache: &mut BTreeMap) { match self { UserProfileUpdate::Full { new_profile, room_id, room_member } => { - match cache.entry(new_profile.user_id.to_owned()) { - Entry::Occupied(mut entry) => { - let entry_mut = entry.get_mut(); - entry_mut.user_profile = new_profile; - entry_mut.room_members.insert(room_id, room_member); + match cache.entry(new_profile.user_id.clone()) { + Entry::Occupied(mut entry) => match entry.get_mut() { + e @ UserProfileCacheEntry::Requested => { + *e = UserProfileCacheEntry::Loaded { + user_profile: new_profile, + rooms: { + let mut room_members_map = BTreeMap::new(); + room_members_map.insert(room_id, room_member); + room_members_map + }, + }; + } + UserProfileCacheEntry::Loaded { user_profile, rooms } => { + *user_profile = new_profile; + rooms.insert(room_id, room_member); + } } Entry::Vacant(entry) => { - entry.insert(UserProfileCacheEntry { + entry.insert(UserProfileCacheEntry::Loaded { user_profile: new_profile, - room_members: { + rooms: { let mut room_members_map = BTreeMap::new(); room_members_map.insert(room_id, room_member); room_members_map @@ -115,19 +99,37 @@ impl UserProfileUpdate { } UserProfileUpdate::RoomMemberOnly { room_id, room_member } => { match cache.entry(room_member.user_id().to_owned()) { - Entry::Occupied(mut entry) => { - entry.get_mut().room_members.insert(room_id, room_member); + Entry::Occupied(mut entry) => match entry.get_mut() { + e @ UserProfileCacheEntry::Requested => { + // This shouldn't happen, but we can still technically handle it correctly. + warning!("BUG: User profile cache entry was `Requested` for user {} when handling RoomMemberOnly update", room_member.user_id()); + *e = UserProfileCacheEntry::Loaded { + user_profile: UserProfile { + user_id: room_member.user_id().to_owned(), + username: None, + avatar_state: AvatarState::Known(room_member.avatar_url().map(|url| url.to_owned())), + }, + rooms: { + let mut room_members_map = BTreeMap::new(); + room_members_map.insert(room_id, room_member); + room_members_map + }, + }; + } + UserProfileCacheEntry::Loaded { rooms, .. } => { + rooms.insert(room_id, room_member); + } } Entry::Vacant(entry) => { // This shouldn't happen, but we can still technically handle it correctly. warning!("BUG: User profile cache entry not found for user {} when handling RoomMemberOnly update", room_member.user_id()); - entry.insert(UserProfileCacheEntry { + entry.insert(UserProfileCacheEntry::Loaded { user_profile: UserProfile { user_id: room_member.user_id().to_owned(), username: None, avatar_state: AvatarState::Known(room_member.avatar_url().map(|url| url.to_owned())), }, - room_members: { + rooms: { let mut room_members_map = BTreeMap::new(); room_members_map.insert(room_id, room_member); room_members_map @@ -137,12 +139,22 @@ impl UserProfileUpdate { } } UserProfileUpdate::UserProfileOnly(new_profile) => { - match cache.entry(new_profile.user_id.to_owned()) { - Entry::Occupied(mut entry) => entry.get_mut().user_profile = new_profile, + match cache.entry(new_profile.user_id.clone()) { + Entry::Occupied(mut entry) => match entry.get_mut() { + e @ UserProfileCacheEntry::Requested => { + *e = UserProfileCacheEntry::Loaded { + user_profile: new_profile, + rooms: BTreeMap::new(), + }; + } + UserProfileCacheEntry::Loaded { user_profile, .. } => { + *user_profile = new_profile; + } + } Entry::Vacant(entry) => { - entry.insert(UserProfileCacheEntry { + entry.insert(UserProfileCacheEntry::Loaded { user_profile: new_profile, - room_members: BTreeMap::new(), + rooms: BTreeMap::new(), }); } } @@ -171,65 +183,86 @@ pub fn process_user_profile_updates(_cx: &mut Cx) { /// This function requires passing in a reference to `Cx`, /// which isn't used, but acts as a guarantee that this function /// must only be called by the main UI thread. -#[allow(unused)] -pub fn with_user_profile(_cx: &mut Cx, user_id: &UserId, f: F) -> Option +pub fn with_user_profile( + _cx: &mut Cx, + user_id: OwnedUserId, + fetch_if_missing: bool, + f: F, +) -> Option where F: FnOnce(&UserProfile, &BTreeMap) -> R, { - USER_PROFILE_CACHE.with_borrow(|cache| cache - .get(user_id) - .map(|entry| f(&entry.user_profile, &entry.room_members)) + USER_PROFILE_CACHE.with_borrow_mut(|cache| + match cache.entry(user_id) { + Entry::Occupied(entry) => match entry.get() { + UserProfileCacheEntry::Loaded { user_profile, rooms } => { + Some(f(user_profile, rooms)) + } + UserProfileCacheEntry::Requested => { + // log!("User {} profile request is already in flight....", entry.key()); + None + } + } + Entry::Vacant(entry) => { + if fetch_if_missing { + log!("Did not find User {} in cache, fetching from server.", entry.key()); + // TODO: use the extra `via` parameters from `matrix_to_uri.via()`. + submit_async_request(MatrixRequest::GetUserProfile { + user_id: entry.key().clone(), + room_id: None, + local_only: false, + }); + entry.insert(UserProfileCacheEntry::Requested); + } + None + } + } ) } -/// Returns a clone of the cached user profile for the given user ID, if it exists. -/// -/// This function requires passing in a reference to `Cx`, -/// which isn't used, but acts as a guarantee that this function -/// must only be called by the main UI thread. -#[allow(unused)] -pub fn get_user_profile(_cx: &mut Cx, user_id: &UserId) -> Option { - USER_PROFILE_CACHE.with_borrow(|cache| { - cache.get(user_id).map(|entry| entry.user_profile.clone()) - }) -} /// Returns a clone of the cached user profile for the given user ID -/// and a clone of that user's room member info for the given room ID. +/// and a clone of that user's room member info for the given room ID, +/// only if both are found in the cache. +/// +/// If either the `user_id` or `room_id` wasn't found in the cache, +/// and if `fetch_if_missing` is true, then this function will submit a request +/// to asynchronously fetch the user's room membership info from the server. /// /// This function requires passing in a reference to `Cx`, /// which isn't used, but acts as a guarantee that this function /// must only be called by the main UI thread. pub fn get_user_profile_and_room_member( - _cx: &mut Cx, - user_id: &UserId, +#[allow(unused)] +_cx: &mut Cx, + user_id: OwnedUserId, room_id: &RoomId, + fetch_if_missing: bool, ) -> (Option, Option) { - USER_PROFILE_CACHE.with_borrow(|cache| - if let Some(entry) = cache.get(user_id) { - ( - Some(entry.user_profile.clone()), - entry.room_members.get(room_id).cloned(), - ) - } else { - (None, None) + USER_PROFILE_CACHE.with_borrow_mut(|cache| + match cache.entry(user_id) { + Entry::Occupied(entry) => match entry.get() { + UserProfileCacheEntry::Loaded { user_profile, rooms } => { + (Some(user_profile.clone()), rooms.get(room_id).cloned()) + } + UserProfileCacheEntry::Requested => { + // log!("User {} Room ID {room_id} room member info request is already in flight....", entry.key()); + (None, None) + } + } + Entry::Vacant(entry) => { + if fetch_if_missing { + log!("Did not find User {} Room ID {room_id} room member info in cache, fetching from server.", entry.key()); + // TODO: use the extra `via` parameters from `matrix_to_uri.via()`. + submit_async_request(MatrixRequest::GetUserProfile { + user_id: entry.key().clone(), + room_id: Some(room_id.to_owned()), + local_only: false, + }); + entry.insert(UserProfileCacheEntry::Requested); + } + (None, None) + } } ) } - -/// Returns a clone of the cached room member info for the given user ID and room ID, -/// only if both are found in the cache. -/// -/// This function requires passing in a reference to `Cx`, -/// which isn't used, but acts as a guarantee that this function -/// must only be called by the main UI thread. -pub fn get_user_room_member_info( - _cx: &mut Cx, - user_id: &UserId, - room_id: &RoomId, -) -> Option { - USER_PROFILE_CACHE.with_borrow(|cache| - cache.get(user_id) - .and_then(|entry| entry.room_members.get(room_id).cloned()) - ) -} diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 6fc7459..c76ee8d 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -543,17 +543,28 @@ async fn async_worker( } } - if update.is_none() && !local_only { - if let Ok(response) = client.account().fetch_user_profile_of(&user_id).await { - update = Some(UserProfileUpdate::UserProfileOnly( - UserProfile { - username: response.displayname, - user_id: user_id.clone(), - avatar_state: AvatarState::Known(response.avatar_url), + if !local_only { + if update.is_none() { + if let Ok(response) = client.account().fetch_user_profile_of(&user_id).await { + update = Some(UserProfileUpdate::UserProfileOnly( + UserProfile { + username: response.displayname, + user_id: user_id.clone(), + avatar_state: AvatarState::Known(response.avatar_url), + } + )); + } else { + log!("User profile request: client could not get user with ID {user_id}"); + } + } + + match update.as_mut() { + Some(UserProfileUpdate::Full { new_profile: UserProfile { username, .. }, .. }) if username.is_none() => { + if let Ok(response) = client.account().fetch_user_profile_of(&user_id).await { + *username = response.displayname; } - )); - } else { - log!("User profile request: client could not get user with ID {user_id}"); + } + _ => { } } } From e0098364cb759e6f48279b0ee38d6a41ab6ae43f Mon Sep 17 00:00:00 2001 From: Kevin Boos Date: Fri, 27 Dec 2024 00:56:22 -0800 Subject: [PATCH 05/27] minor cleanup after PR #303 --- src/profile/user_profile_cache.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/profile/user_profile_cache.rs b/src/profile/user_profile_cache.rs index 08440ea..89304b8 100644 --- a/src/profile/user_profile_cache.rs +++ b/src/profile/user_profile_cache.rs @@ -233,8 +233,7 @@ where /// which isn't used, but acts as a guarantee that this function /// must only be called by the main UI thread. pub fn get_user_profile_and_room_member( -#[allow(unused)] -_cx: &mut Cx, + _cx: &mut Cx, user_id: OwnedUserId, room_id: &RoomId, fetch_if_missing: bool, From 1da71fab408a2c8ca2ffbaf48950936977384aa4 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 18:02:12 +0800 Subject: [PATCH 06/27] Show input bar as default --- src/sliding_sync.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index c76ee8d..8f4775e 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -812,7 +812,7 @@ async fn async_worker( matrix_sdk::ruma::events::MessageLikeEventType::Message ) .await - .unwrap_or(false); + .unwrap_or(true); if let Err(e) = sender.send(TimelineUpdate::CanUserSendMessage(can_user_send_message)) { error!("Failed to send the result of if user can send message: {e}") From da51a4f266101c56ad998aac794ba516f39e2061 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 19:46:34 +0800 Subject: [PATCH 07/27] Restructure func 'update_latest_event' --- .log | 173 ++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 + src/sliding_sync.rs | 72 ++++++++++++++---- 3 files changed, 231 insertions(+), 16 deletions(-) create mode 100644 .log diff --git a/.log b/.log new file mode 100644 index 0000000..a1d0e33 --- /dev/null +++ b/.log @@ -0,0 +1,173 @@ +src/app.rs:173:9 - App::handle_startup(): app_data_dir: "/home/lym/.local/share/robrix" +src/app.rs:177:9 - App::handle_startup(): starting matrix sdk loop +src/sliding_sync.rs:401:5 - Started async_worker task. +src/sliding_sync.rs:1046:5 - Most recent user ID: Some("@demolemon:matrix.org") +src/sliding_sync.rs:1050:5 - CLI parsing succeeded? false. CLI has valid UN+PW? false +src/sliding_sync.rs:1058:5 - Waiting for login? false +src/sliding_sync.rs:1067:9 - Trying to restore session for user: Some("@demolemon:matrix.org") +src/persistent_state.rs:101:5 - Loading previous session file for @demolemon:matrix.org...: '/home/lym/.local/share/robrix/demolemon_matrix.org/persistent_state/session' +src/persistent_state.rs:113:5 - Loaded session file for @demolemon:matrix.org. Trying to connect to homeserver (https://matrix-client.matrix.org/)... +2024-12-27T11:12:57.618949Z  INFO build{homeserver=ServerNameOrHomeserverUrl("https://matrix-client.matrix.org/")}: matrix_sdk::client::builder: selected sliding sync version version=Native +src/persistent_state.rs:126:5 - Authenticating previous login session for @demolemon:matrix.org... +2024-12-27T11:12:57.630984Z  INFO matrix_sdk::encryption::backups: Setting up secret listeners and trying to resume backups +src/verification.rs:25:5 - Initial verification state is Unknown +src/sliding_sync.rs:1477:5 - Initial ignored-user list is: [] +2024-12-27T11:12:57.631466Z  INFO matrix_sdk::encryption::recovery: Setting up account data listeners and trying to setup recovery +src/app.rs:184:17 - Received LoginAction::LoginSuccess, hiding login view. +src/sliding_sync.rs:1513:5 - Initial sync service state is Idle +src/sliding_sync.rs:1529:5 - Initial room list loading state is NotLoaded +src/sliding_sync.rs:1516:13 - Received a sync service state update: Running +2024-12-27T11:12:57.632716Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!wxRBAsDVqEDXBQdGVR:matrix.org`, the timeline will be empty. +2024-12-27T11:12:57.632870Z  INFO next_sync_with_lock:sync_once: matrix_sdk::sliding_sync: Marking all tracked users as dirty +src/sliding_sync.rs:1532:13 - Received a room list loading state update: NotLoaded +src/home/rooms_list.rs:351:17 - RoomsList: processed 3 updates to the list of all rooms +2024-12-27T11:12:58.079211Z  INFO matrix_sdk::encryption::recovery: Recovery state changed from Unknown to Incomplete +src/verification.rs:28:13 - Received a verification state update: Unverified +2024-12-27T11:12:59.364475Z  INFO sending_task{room_id=!wxRBAsDVqEDXBQdGVR:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:12:59.364768Z  INFO local_echo_handler{room_id="!wxRBAsDVqEDXBQdGVR:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !wxRBAsDVqEDXBQdGVR:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !wxRBAsDVqEDXBQdGVR:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !wxRBAsDVqEDXBQdGVR:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-27T11:12:59.364932Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!ugrySPqOXlcmORZIwY:matrix.org`, the timeline will be empty. +2024-12-27T11:12:59.365001Z  WARN build{room_id="!ugrySPqOXlcmORZIwY:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms +2024-12-27T11:12:59.365920Z  INFO sending_task{room_id=!ugrySPqOXlcmORZIwY:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:12:59.366092Z  INFO local_echo_handler{room_id="!ugrySPqOXlcmORZIwY:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !ugrySPqOXlcmORZIwY:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !ugrySPqOXlcmORZIwY:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !ugrySPqOXlcmORZIwY:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-27T11:12:59.366292Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!cGyiuCNphlCyGxDYcZ:matrix.org`, the timeline will be empty. +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org... +2024-12-27T11:12:59.366365Z  WARN build{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:12:59.367146Z  INFO sending_task{room_id=!cGyiuCNphlCyGxDYcZ:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:12:59.367345Z  INFO local_echo_handler{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !cGyiuCNphlCyGxDYcZ:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !cGyiuCNphlCyGxDYcZ:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !cGyiuCNphlCyGxDYcZ:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-27T11:12:59.367478Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!moVNEIUPxJZpxRHDUv:matrix.org`, the timeline will be empty. +src/home/rooms_list.rs:351:17 - RoomsList: processed 4 updates to the list of all rooms +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org... +src/home/room_screen.rs:1956:13 - Sending a first-time backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org +src/sliding_sync.rs:504:21 - Sending fetch room members request for room !wxRBAsDVqEDXBQdGVR:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org... +2024-12-27T11:13:00.396519Z  WARN sync_once:handle_response:handle_timeline{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg" origin_server_ts="2024-12-27T10:13:55.662Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:edovrwKptvEQGGLXGs1IleJukotZxNo+gpk9gJ+uySg" session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/home/room_screen.rs:1956:13 - Sending a first-time backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org +src/sliding_sync.rs:504:21 - Sending fetch room members request for room !ugrySPqOXlcmORZIwY:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org... +2024-12-27T11:13:01.915639Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) +src/sliding_sync.rs:451:29 - Error sending backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) +src/home/room_screen.rs:1642:21 - Pagination error (backwards) in room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) +src/sliding_sync.rs:506:21 - Completed fetch room members request for room !wxRBAsDVqEDXBQdGVR:matrix.org. +2024-12-27T11:13:03.317201Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg" origin_server_ts="2024-12-27T10:13:55.662Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:edovrwKptvEQGGLXGs1IleJukotZxNo+gpk9gJ+uySg" session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-27T11:13:03.323744Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$PRR9Cvz1GKaRR9sDRrWac3PglNOfvigckaDPLcC_KCE" origin_server_ts="2024-12-27T10:04:32.899Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-27T11:13:03.330054Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$6oZANyY0TCQ4btosWSmzovwwZk3aQb7drYeAa4TiQP0" origin_server_ts="2024-12-27T10:00:17.966Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-27T11:13:03.336375Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$zvoxVs_cZU2v3MZy49OswxL-sBYAooFW1fqytA6CTY8" origin_server_ts="2024-12-27T09:58:55.761Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="Fb3z4bsEqlOP1zptAC4oYYcohzmmevg5saAj7NAmY/w" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org, hit start of timeline? no +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org, hit start of timeline? no +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:506:21 - Completed fetch room members request for room !ugrySPqOXlcmORZIwY:matrix.org. +2024-12-27T11:13:03.795170Z  WARN build{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:13:03.796246Z  INFO sending_task{room_id=!moVNEIUPxJZpxRHDUv:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:13:03.796467Z  INFO local_echo_handler{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !moVNEIUPxJZpxRHDUv:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !moVNEIUPxJZpxRHDUv:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !moVNEIUPxJZpxRHDUv:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org... +src/sliding_sync.rs:1532:13 - Received a room list loading state update: Loaded { maximum_number_of_rooms: Some(11) } +2024-12-27T11:13:03.818320Z ERROR listen_task:handle_room_updates: matrix_sdk::event_cache: handling joined room update: Error observed while back-paginating: expected paginator state Idle, observed Paginating +src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms +src/home/room_screen.rs:1486:29 - Timeline::handle_event(): timeline (had 14 items) was cleared for room !ugrySPqOXlcmORZIwY:matrix.org +src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list +src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list +src/verification.rs:28:13 - Received a verification state update: Unverified +2024-12-27T11:13:04.208681Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +2024-12-27T11:13:04.235737Z  WARN build{room_id="!BHcierreUuwCMxVqOf:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:13:04.239057Z  INFO sending_task{room_id=!BHcierreUuwCMxVqOf:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:13:04.239323Z  INFO local_echo_handler{room_id="!BHcierreUuwCMxVqOf:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !BHcierreUuwCMxVqOf:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !BHcierreUuwCMxVqOf:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !BHcierreUuwCMxVqOf:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org... +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-27T11:13:04.915961Z  WARN build{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:13:04.919162Z  INFO sending_task{room_id=!MzKbWjifQZZoIBHjCX:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:13:04.919429Z  INFO local_echo_handler{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !MzKbWjifQZZoIBHjCX:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !MzKbWjifQZZoIBHjCX:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !MzKbWjifQZZoIBHjCX:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org... +src/sliding_sync.rs:451:29 - Error sending backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) +src/home/room_screen.rs:1642:21 - Pagination error (backwards) in room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) +2024-12-27T11:13:05.144680Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) +2024-12-27T11:13:05.153469Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-27T11:13:05.330184Z  WARN build{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:13:05.334942Z  INFO sending_task{room_id=!iYnZafYUoXkeVPOSQh:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:13:05.335196Z  INFO local_echo_handler{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !iYnZafYUoXkeVPOSQh:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !iYnZafYUoXkeVPOSQh:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !iYnZafYUoXkeVPOSQh:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org... +2024-12-27T11:13:05.653755Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) +2024-12-27T11:13:05.758398Z  WARN build{room_id="!nCULugmcNjxWftdWKg:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:13:05.761682Z  INFO sending_task{room_id=!nCULugmcNjxWftdWKg:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:13:05.761948Z  INFO local_echo_handler{room_id="!nCULugmcNjxWftdWKg:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !nCULugmcNjxWftdWKg:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !nCULugmcNjxWftdWKg:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !nCULugmcNjxWftdWKg:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org... +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-27T11:13:06.200448Z  WARN build{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:13:06.203686Z  INFO sending_task{room_id=!veagCdDBjKrMsOCzrq:privacytools.io}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:13:06.203939Z  INFO local_echo_handler{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !veagCdDBjKrMsOCzrq:privacytools.io... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !veagCdDBjKrMsOCzrq:privacytools.io. +src/sliding_sync.rs:1443:5 - Adding new room !veagCdDBjKrMsOCzrq:privacytools.io to ALL_ROOM_INFO. Replaces tombstoned room: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org, hit start of timeline? no +2024-12-27T11:13:06.683530Z  WARN build{room_id="!eMbtejjAApVrUTLFyB:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:13:06.686832Z  INFO sending_task{room_id=!eMbtejjAApVrUTLFyB:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:13:06.687069Z  INFO local_echo_handler{room_id="!eMbtejjAApVrUTLFyB:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !eMbtejjAApVrUTLFyB:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !eMbtejjAApVrUTLFyB:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !eMbtejjAApVrUTLFyB:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-27T11:13:06.687461Z  WARN build{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:13:06.690231Z  INFO sending_task{room_id=!vVLSRWycKVfdPUWXxI:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:13:06.690421Z  INFO local_echo_handler{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !vVLSRWycKVfdPUWXxI:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !vVLSRWycKVfdPUWXxI:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !vVLSRWycKVfdPUWXxI:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 19 updates to the list of all rooms +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org, hit start of timeline? no +2024-12-27T11:13:12.244234Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-27T11:13:13.071958Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/verification.rs:28:13 - Received a verification state update: Unverified +2024-12-27T11:13:16.607586Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +2024-12-27T11:13:17.134354Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) +2024-12-27T11:13:19.017831Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96352374_3323706711_3644804356_263183789_1428602643_11062481170_0_405644", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$PRR9Cvz1GKaRR9sDRrWac3PglNOfvigckaDPLcC_KCE" origin_server_ts="2024-12-27T10:04:32.899Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-27T11:13:19.024607Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96352374_3323706711_3644804356_263183789_1428602643_11062481170_0_405644", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$6oZANyY0TCQ4btosWSmzovwwZk3aQb7drYeAa4TiQP0" origin_server_ts="2024-12-27T10:00:17.966Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-27T11:13:19.031154Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96352374_3323706711_3644804356_263183789_1428602643_11062481170_0_405644", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$zvoxVs_cZU2v3MZy49OswxL-sBYAooFW1fqytA6CTY8" origin_server_ts="2024-12-27T09:58:55.761Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="Fb3z4bsEqlOP1zptAC4oYYcohzmmevg5saAj7NAmY/w" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org, hit start of timeline? no +src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list +2024-12-27T11:13:47.146225Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +2024-12-27T11:13:49.904557Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) diff --git a/Cargo.toml b/Cargo.toml index b0fe90e..3fab461 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -216,3 +216,5 @@ too_many_arguments = "allow" blocks_in_conditions = "allow" used_underscore_binding = "allow" module_name_repetitions = "allow" +[profile.dev] +debug = 0 diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 8f4775e..ce727af 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -17,7 +17,7 @@ use matrix_sdk::{ use matrix_sdk_ui::{ room_list_service::{self, RoomListLoadingState}, sync_service::{self, SyncService}, - timeline::{AnyOtherFullStateEventContent, EventTimelineItem, RepliedToInfo, TimelineDetails, TimelineItem, TimelineItemContent}, + timeline::{AnyOtherFullStateEventContent, EventTimelineItem, RepliedToInfo, TimelineDetails, TimelineItem, TimelineItemContent, MembershipChange}, Timeline, }; use robius_open::Uri; @@ -1888,7 +1888,41 @@ async fn timeline_subscriber_handler( // Update the latest event for this room. if let Some(new_latest) = new_latest_event { if latest_event.as_ref().map_or(true, |ev| ev.timestamp() < new_latest.timestamp()) { - let room_avatar_changed = update_latest_event(room_id.clone(), &new_latest); + // `room_avatar_changed` is used to monitor if room avatar has changed. + let mut room_avatar_changed = false; + + match new_latest.content() { + TimelineItemContent::OtherState(other) => { + match other.content() { + // Hanle RoomName change event. + AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { + rooms_list::enqueue_rooms_list_update(RoomsListUpdate::UpdateRoomName { + room_id: room_id.clone(), + new_room_name: content.name.clone(), + }); + } + // Hanle RoomAvatar change event. + AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { + // Set it to `true` if this latest event indicates that the room's avatar has changed. + room_avatar_changed = true; + } + // Hanle RoomPowerLevels event. + // Submit a `MatrixRequest` to check if the user can send when power levels change. + AnyOtherFullStateEventContent::RoomPowerLevels(_power_level_event) => { + submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) + } + _ => { } + } + } + TimelineItemContent::MembershipChange(room_membership_change) => { + // Submit a `MatrixRequest` to check if the user can send when invited to a room. + if let Some(MembershipChange::Invited) = room_membership_change.change() { + submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) + } + } + _ => { } + } + latest_event = Some(new_latest); if room_avatar_changed { spawn_fetch_room_avatar(room.clone()); @@ -1922,24 +1956,30 @@ fn update_latest_event( let (timestamp, latest_message_text) = get_latest_event_details(event_tl_item, &room_id); - // Check for relevant state events: a changed room name or avatar. - if let TimelineItemContent::OtherState(other) = event_tl_item.content() { - match other.content() { - AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { - rooms_list::enqueue_rooms_list_update(RoomsListUpdate::UpdateRoomName { - room_id: room_id.clone(), - new_room_name: content.name.clone(), - }); - } - AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { - room_avatar_changed = true; + // Check for relevant state events. + match event_tl_item.content() { + TimelineItemContent::OtherState(other) => { + match other.content() { + AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { + rooms_list::enqueue_rooms_list_update(RoomsListUpdate::UpdateRoomName { + room_id: room_id.clone(), + new_room_name: content.name.clone(), + }); + } + AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { + room_avatar_changed = true; + } + _ => { } } - AnyOtherFullStateEventContent::RoomPowerLevels(_power_level_event) => { - submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) + } + TimelineItemContent::MembershipChange(room_membership_change) => { + if let Some(MembershipChange::Invited) = room_membership_change.change() { + } - _ => { } } + _ => {} } + enqueue_rooms_list_update(RoomsListUpdate::UpdateLatestEvent { room_id, timestamp, From 0a3653bf51ae4218845428d7f25f3027f07bc3d5 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 19:48:44 +0800 Subject: [PATCH 08/27] Correct function name --- src/sliding_sync.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index ce727af..08159a1 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1312,7 +1312,7 @@ async fn update_room( if let Some(old_latest_event) = old_room.latest_event().await { if new_latest_event.timestamp() > old_latest_event.timestamp() { log!("Updating latest event for room {}", new_room_id); - room_avatar_changed = update_latest_event(new_room_id.clone(), &new_latest_event); + room_avatar_changed = update_avatar_for_latest_event(new_room_id.clone(), &new_latest_event); } } } @@ -1917,6 +1917,7 @@ async fn timeline_subscriber_handler( TimelineItemContent::MembershipChange(room_membership_change) => { // Submit a `MatrixRequest` to check if the user can send when invited to a room. if let Some(MembershipChange::Invited) = room_membership_change.change() { + log!("Received an invite."); submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) } } @@ -1948,7 +1949,7 @@ async fn timeline_subscriber_handler( /// /// Returns `true` if this latest event indicates that the room's avatar has changed /// and should also be updated. -fn update_latest_event( +fn update_avatar_for_latest_event( room_id: OwnedRoomId, event_tl_item: &EventTimelineItem, ) -> bool { From 2eeab8e721becf6ae5a767f6807656face04bc8a Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 19:57:59 +0800 Subject: [PATCH 09/27] Add check for receiving invitation --- .log | 182 +++++++++++++++++++------------------------- src/sliding_sync.rs | 5 +- 2 files changed, 83 insertions(+), 104 deletions(-) diff --git a/.log b/.log index a1d0e33..21798a7 100644 --- a/.log +++ b/.log @@ -7,167 +7,143 @@ src/sliding_sync.rs:1058:5 - Waiting for login? false src/sliding_sync.rs:1067:9 - Trying to restore session for user: Some("@demolemon:matrix.org") src/persistent_state.rs:101:5 - Loading previous session file for @demolemon:matrix.org...: '/home/lym/.local/share/robrix/demolemon_matrix.org/persistent_state/session' src/persistent_state.rs:113:5 - Loaded session file for @demolemon:matrix.org. Trying to connect to homeserver (https://matrix-client.matrix.org/)... -2024-12-27T11:12:57.618949Z  INFO build{homeserver=ServerNameOrHomeserverUrl("https://matrix-client.matrix.org/")}: matrix_sdk::client::builder: selected sliding sync version version=Native +2024-12-27T11:56:32.900552Z  INFO build{homeserver=ServerNameOrHomeserverUrl("https://matrix-client.matrix.org/")}: matrix_sdk::client::builder: selected sliding sync version version=Native src/persistent_state.rs:126:5 - Authenticating previous login session for @demolemon:matrix.org... -2024-12-27T11:12:57.630984Z  INFO matrix_sdk::encryption::backups: Setting up secret listeners and trying to resume backups +2024-12-27T11:56:32.912440Z  INFO matrix_sdk::encryption::backups: Setting up secret listeners and trying to resume backups src/verification.rs:25:5 - Initial verification state is Unknown src/sliding_sync.rs:1477:5 - Initial ignored-user list is: [] -2024-12-27T11:12:57.631466Z  INFO matrix_sdk::encryption::recovery: Setting up account data listeners and trying to setup recovery -src/app.rs:184:17 - Received LoginAction::LoginSuccess, hiding login view. +2024-12-27T11:56:32.913095Z  INFO matrix_sdk::encryption::recovery: Setting up account data listeners and trying to setup recovery src/sliding_sync.rs:1513:5 - Initial sync service state is Idle src/sliding_sync.rs:1529:5 - Initial room list loading state is NotLoaded src/sliding_sync.rs:1516:13 - Received a sync service state update: Running -2024-12-27T11:12:57.632716Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!wxRBAsDVqEDXBQdGVR:matrix.org`, the timeline will be empty. -2024-12-27T11:12:57.632870Z  INFO next_sync_with_lock:sync_once: matrix_sdk::sliding_sync: Marking all tracked users as dirty +2024-12-27T11:56:32.914076Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!wxRBAsDVqEDXBQdGVR:matrix.org`, the timeline will be empty. src/sliding_sync.rs:1532:13 - Received a room list loading state update: NotLoaded +2024-12-27T11:56:32.914527Z  INFO next_sync_with_lock:sync_once: matrix_sdk::sliding_sync: Marking all tracked users as dirty +src/app.rs:184:17 - Received LoginAction::LoginSuccess, hiding login view. src/home/rooms_list.rs:351:17 - RoomsList: processed 3 updates to the list of all rooms -2024-12-27T11:12:58.079211Z  INFO matrix_sdk::encryption::recovery: Recovery state changed from Unknown to Incomplete +2024-12-27T11:56:33.327339Z  INFO matrix_sdk::encryption::recovery: Recovery state changed from Unknown to Incomplete src/verification.rs:28:13 - Received a verification state update: Unverified -2024-12-27T11:12:59.364475Z  INFO sending_task{room_id=!wxRBAsDVqEDXBQdGVR:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:12:59.364768Z  INFO local_echo_handler{room_id="!wxRBAsDVqEDXBQdGVR:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +2024-12-27T11:56:33.716153Z  INFO sending_task{room_id=!wxRBAsDVqEDXBQdGVR:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:33.716408Z  INFO local_echo_handler{room_id="!wxRBAsDVqEDXBQdGVR:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !wxRBAsDVqEDXBQdGVR:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !wxRBAsDVqEDXBQdGVR:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !wxRBAsDVqEDXBQdGVR:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:12:59.364932Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!ugrySPqOXlcmORZIwY:matrix.org`, the timeline will be empty. -2024-12-27T11:12:59.365001Z  WARN build{room_id="!ugrySPqOXlcmORZIwY:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms -2024-12-27T11:12:59.365920Z  INFO sending_task{room_id=!ugrySPqOXlcmORZIwY:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:12:59.366092Z  INFO local_echo_handler{room_id="!ugrySPqOXlcmORZIwY:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +2024-12-27T11:56:33.716680Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!ugrySPqOXlcmORZIwY:matrix.org`, the timeline will be empty. +2024-12-27T11:56:33.716810Z  WARN build{room_id="!ugrySPqOXlcmORZIwY:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:33.717630Z  INFO sending_task{room_id=!ugrySPqOXlcmORZIwY:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:33.717843Z  INFO local_echo_handler{room_id="!ugrySPqOXlcmORZIwY:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !ugrySPqOXlcmORZIwY:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !ugrySPqOXlcmORZIwY:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !ugrySPqOXlcmORZIwY:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:12:59.366292Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!cGyiuCNphlCyGxDYcZ:matrix.org`, the timeline will be empty. -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org... -2024-12-27T11:12:59.366365Z  WARN build{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:12:59.367146Z  INFO sending_task{room_id=!cGyiuCNphlCyGxDYcZ:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:12:59.367345Z  INFO local_echo_handler{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +2024-12-27T11:56:33.718032Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!cGyiuCNphlCyGxDYcZ:matrix.org`, the timeline will be empty. +2024-12-27T11:56:33.718136Z  WARN build{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:33.718952Z  INFO sending_task{room_id=!cGyiuCNphlCyGxDYcZ:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:33.719140Z  INFO local_echo_handler{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !cGyiuCNphlCyGxDYcZ:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !cGyiuCNphlCyGxDYcZ:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !cGyiuCNphlCyGxDYcZ:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:12:59.367478Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!moVNEIUPxJZpxRHDUv:matrix.org`, the timeline will be empty. -src/home/rooms_list.rs:351:17 - RoomsList: processed 4 updates to the list of all rooms -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org... -src/home/room_screen.rs:1956:13 - Sending a first-time backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org -src/sliding_sync.rs:504:21 - Sending fetch room members request for room !wxRBAsDVqEDXBQdGVR:matrix.org... +2024-12-27T11:56:33.719289Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!moVNEIUPxJZpxRHDUv:matrix.org`, the timeline will be empty. +src/home/rooms_list.rs:351:17 - RoomsList: processed 6 updates to the list of all rooms src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org... -2024-12-27T11:13:00.396519Z  WARN sync_once:handle_response:handle_timeline{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg" origin_server_ts="2024-12-27T10:13:55.662Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:edovrwKptvEQGGLXGs1IleJukotZxNo+gpk9gJ+uySg" session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/home/room_screen.rs:1956:13 - Sending a first-time backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org -src/sliding_sync.rs:504:21 - Sending fetch room members request for room !ugrySPqOXlcmORZIwY:matrix.org... src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org... -2024-12-27T11:13:01.915639Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) -src/sliding_sync.rs:451:29 - Error sending backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) -src/home/room_screen.rs:1642:21 - Pagination error (backwards) in room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) -src/sliding_sync.rs:506:21 - Completed fetch room members request for room !wxRBAsDVqEDXBQdGVR:matrix.org. -2024-12-27T11:13:03.317201Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg" origin_server_ts="2024-12-27T10:13:55.662Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:edovrwKptvEQGGLXGs1IleJukotZxNo+gpk9gJ+uySg" session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-27T11:13:03.323744Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$PRR9Cvz1GKaRR9sDRrWac3PglNOfvigckaDPLcC_KCE" origin_server_ts="2024-12-27T10:04:32.899Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-27T11:13:03.330054Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$6oZANyY0TCQ4btosWSmzovwwZk3aQb7drYeAa4TiQP0" origin_server_ts="2024-12-27T10:00:17.966Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-27T11:13:03.336375Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$zvoxVs_cZU2v3MZy49OswxL-sBYAooFW1fqytA6CTY8" origin_server_ts="2024-12-27T09:58:55.761Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="Fb3z4bsEqlOP1zptAC4oYYcohzmmevg5saAj7NAmY/w" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org, hit start of timeline? no -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org, hit start of timeline? no -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:506:21 - Completed fetch room members request for room !ugrySPqOXlcmORZIwY:matrix.org. -2024-12-27T11:13:03.795170Z  WARN build{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:13:03.796246Z  INFO sending_task{room_id=!moVNEIUPxJZpxRHDUv:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:13:03.796467Z  INFO local_echo_handler{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org... +2024-12-27T11:56:33.920864Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) +src/verification.rs:28:13 - Received a verification state update: Unverified +2024-12-27T11:56:34.342476Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +2024-12-27T11:56:34.573569Z  WARN build{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:34.574468Z  INFO sending_task{room_id=!moVNEIUPxJZpxRHDUv:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:34.574730Z  INFO local_echo_handler{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !moVNEIUPxJZpxRHDUv:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !moVNEIUPxJZpxRHDUv:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !moVNEIUPxJZpxRHDUv:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-27T11:56:34.574948Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!BHcierreUuwCMxVqOf:matrix.org`, the timeline will be empty. src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org... -src/sliding_sync.rs:1532:13 - Received a room list loading state update: Loaded { maximum_number_of_rooms: Some(11) } -2024-12-27T11:13:03.818320Z ERROR listen_task:handle_room_updates: matrix_sdk::event_cache: handling joined room update: Error observed while back-paginating: expected paginator state Idle, observed Paginating -src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms -src/home/room_screen.rs:1486:29 - Timeline::handle_event(): timeline (had 14 items) was cleared for room !ugrySPqOXlcmORZIwY:matrix.org -src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list -src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list -src/verification.rs:28:13 - Received a verification state update: Unverified -2024-12-27T11:13:04.208681Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -2024-12-27T11:13:04.235737Z  WARN build{room_id="!BHcierreUuwCMxVqOf:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:13:04.239057Z  INFO sending_task{room_id=!BHcierreUuwCMxVqOf:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:13:04.239323Z  INFO local_echo_handler{room_id="!BHcierreUuwCMxVqOf:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +2024-12-27T11:56:34.632853Z  WARN sync_once:handle_response:handle_timeline{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg" origin_server_ts="2024-12-27T10:13:55.662Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:edovrwKptvEQGGLXGs1IleJukotZxNo+gpk9gJ+uySg" session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-27T11:56:35.054569Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) +2024-12-27T11:56:35.119894Z  WARN build{room_id="!BHcierreUuwCMxVqOf:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:35.120905Z  INFO sending_task{room_id=!BHcierreUuwCMxVqOf:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:35.121182Z  INFO local_echo_handler{room_id="!BHcierreUuwCMxVqOf:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !BHcierreUuwCMxVqOf:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !BHcierreUuwCMxVqOf:matrix.org. +src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !BHcierreUuwCMxVqOf:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !BHcierreUuwCMxVqOf:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:1532:13 - Received a room list loading state update: Loaded { maximum_number_of_rooms: Some(11) } +src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms +2024-12-27T11:56:35.132535Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org... -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-27T11:13:04.915961Z  WARN build{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:13:04.919162Z  INFO sending_task{room_id=!MzKbWjifQZZoIBHjCX:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:13:04.919429Z  INFO local_echo_handler{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/home/room_screen.rs:1956:13 - Sending a first-time backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org +src/sliding_sync.rs:504:21 - Sending fetch room members request for room !wxRBAsDVqEDXBQdGVR:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org... +2024-12-27T11:56:35.546638Z  WARN build{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:35.550178Z  INFO sending_task{room_id=!MzKbWjifQZZoIBHjCX:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:35.550469Z  INFO local_echo_handler{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !MzKbWjifQZZoIBHjCX:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !MzKbWjifQZZoIBHjCX:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !MzKbWjifQZZoIBHjCX:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org... -src/sliding_sync.rs:451:29 - Error sending backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) -src/home/room_screen.rs:1642:21 - Pagination error (backwards) in room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) -2024-12-27T11:13:05.144680Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) -2024-12-27T11:13:05.153469Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +2024-12-27T11:56:35.618448Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org, hit start of timeline? no src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-27T11:13:05.330184Z  WARN build{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:13:05.334942Z  INFO sending_task{room_id=!iYnZafYUoXkeVPOSQh:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:13:05.335196Z  INFO local_echo_handler{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:506:21 - Completed fetch room members request for room !wxRBAsDVqEDXBQdGVR:matrix.org. +2024-12-27T11:56:36.004338Z  WARN build{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:36.009060Z  INFO sending_task{room_id=!iYnZafYUoXkeVPOSQh:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:36.009309Z  INFO local_echo_handler{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !iYnZafYUoXkeVPOSQh:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !iYnZafYUoXkeVPOSQh:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !iYnZafYUoXkeVPOSQh:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org... -2024-12-27T11:13:05.653755Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) -2024-12-27T11:13:05.758398Z  WARN build{room_id="!nCULugmcNjxWftdWKg:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:13:05.761682Z  INFO sending_task{room_id=!nCULugmcNjxWftdWKg:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:13:05.761948Z  INFO local_echo_handler{room_id="!nCULugmcNjxWftdWKg:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +2024-12-27T11:56:36.176644Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96486591_3323771263_3644895192_263184383_1428616447_11062494413_0_405659", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$PRR9Cvz1GKaRR9sDRrWac3PglNOfvigckaDPLcC_KCE" origin_server_ts="2024-12-27T10:04:32.899Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-27T11:56:36.182876Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96486591_3323771263_3644895192_263184383_1428616447_11062494413_0_405659", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$6oZANyY0TCQ4btosWSmzovwwZk3aQb7drYeAa4TiQP0" origin_server_ts="2024-12-27T10:00:17.966Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-27T11:56:36.188988Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96486591_3323771263_3644895192_263184383_1428616447_11062494413_0_405659", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$zvoxVs_cZU2v3MZy49OswxL-sBYAooFW1fqytA6CTY8" origin_server_ts="2024-12-27T09:58:55.761Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="Fb3z4bsEqlOP1zptAC4oYYcohzmmevg5saAj7NAmY/w" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org, hit start of timeline? no +2024-12-27T11:56:36.427393Z  WARN build{room_id="!nCULugmcNjxWftdWKg:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:36.430536Z  INFO sending_task{room_id=!nCULugmcNjxWftdWKg:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:36.430758Z  INFO local_echo_handler{room_id="!nCULugmcNjxWftdWKg:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !nCULugmcNjxWftdWKg:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !nCULugmcNjxWftdWKg:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !nCULugmcNjxWftdWKg:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org... +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org, hit start of timeline? no src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-27T11:13:06.200448Z  WARN build{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:13:06.203686Z  INFO sending_task{room_id=!veagCdDBjKrMsOCzrq:privacytools.io}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:13:06.203939Z  INFO local_echo_handler{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +2024-12-27T11:56:36.806518Z  WARN build{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:36.810419Z  INFO sending_task{room_id=!veagCdDBjKrMsOCzrq:privacytools.io}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:36.810663Z  INFO local_echo_handler{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !veagCdDBjKrMsOCzrq:privacytools.io... src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !veagCdDBjKrMsOCzrq:privacytools.io. src/sliding_sync.rs:1443:5 - Adding new room !veagCdDBjKrMsOCzrq:privacytools.io to ALL_ROOM_INFO. Replaces tombstoned room: None src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org, hit start of timeline? no -2024-12-27T11:13:06.683530Z  WARN build{room_id="!eMbtejjAApVrUTLFyB:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:13:06.686832Z  INFO sending_task{room_id=!eMbtejjAApVrUTLFyB:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:13:06.687069Z  INFO local_echo_handler{room_id="!eMbtejjAApVrUTLFyB:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org, hit start of timeline? no +src/sliding_sync.rs:451:29 - Error sending backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) +src/home/room_screen.rs:1642:21 - Pagination error (backwards) in room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) +2024-12-27T11:56:37.202352Z  WARN build{room_id="!eMbtejjAApVrUTLFyB:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:37.205657Z  INFO sending_task{room_id=!eMbtejjAApVrUTLFyB:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:37.205880Z  INFO local_echo_handler{room_id="!eMbtejjAApVrUTLFyB:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !eMbtejjAApVrUTLFyB:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !eMbtejjAApVrUTLFyB:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !eMbtejjAApVrUTLFyB:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:13:06.687461Z  WARN build{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:13:06.690231Z  INFO sending_task{room_id=!vVLSRWycKVfdPUWXxI:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:13:06.690421Z  INFO local_echo_handler{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +2024-12-27T11:56:37.206265Z  WARN build{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-27T11:56:37.209016Z  INFO sending_task{room_id=!vVLSRWycKVfdPUWXxI:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-27T11:56:37.209228Z  INFO local_echo_handler{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !vVLSRWycKVfdPUWXxI:matrix.org... src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !vVLSRWycKVfdPUWXxI:matrix.org. src/sliding_sync.rs:1443:5 - Adding new room !vVLSRWycKVfdPUWXxI:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 19 updates to the list of all rooms -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/home/rooms_list.rs:351:17 - RoomsList: processed 22 updates to the list of all rooms src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org, hit start of timeline? no src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org, hit start of timeline? no -2024-12-27T11:13:12.244234Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org, hit start of timeline? no +src/sliding_sync.rs:451:29 - Error sending backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) +src/home/room_screen.rs:1642:21 - Pagination error (backwards) in room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) +2024-12-27T11:56:55.285067Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:1923:37 - Accept an invite. src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-27T11:13:13.071958Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-27T11:56:55.836635Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) src/verification.rs:28:13 - Received a verification state update: Unverified -2024-12-27T11:13:16.607586Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -2024-12-27T11:13:17.134354Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) -2024-12-27T11:13:19.017831Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96352374_3323706711_3644804356_263183789_1428602643_11062481170_0_405644", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$PRR9Cvz1GKaRR9sDRrWac3PglNOfvigckaDPLcC_KCE" origin_server_ts="2024-12-27T10:04:32.899Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-27T11:13:19.024607Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96352374_3323706711_3644804356_263183789_1428602643_11062481170_0_405644", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$6oZANyY0TCQ4btosWSmzovwwZk3aQb7drYeAa4TiQP0" origin_server_ts="2024-12-27T10:00:17.966Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-27T11:13:19.031154Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96352374_3323706711_3644804356_263183789_1428602643_11062481170_0_405644", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$zvoxVs_cZU2v3MZy49OswxL-sBYAooFW1fqytA6CTY8" origin_server_ts="2024-12-27T09:58:55.761Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="Fb3z4bsEqlOP1zptAC4oYYcohzmmevg5saAj7NAmY/w" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org, hit start of timeline? no -src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list -2024-12-27T11:13:47.146225Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -2024-12-27T11:13:49.904557Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'zbIWCBxE5gEtBATSPjWC7e5wDercjiUE6LuoOF+VE2g', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'Ua3U5+tOaBFIIOzU7wafxo7E7Ozut5ruNQsa64otrCk0a5zE+PAcZbn+tLHk3fUOsLQXTyjDWmAwbJMcC6YJCA'}}}" } })))) +2024-12-27T11:56:56.580698Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-27T11:56:57.422973Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 08159a1..dba3e1c 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1917,7 +1917,10 @@ async fn timeline_subscriber_handler( TimelineItemContent::MembershipChange(room_membership_change) => { // Submit a `MatrixRequest` to check if the user can send when invited to a room. if let Some(MembershipChange::Invited) = room_membership_change.change() { - log!("Received an invite."); + submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) + } + if let Some(MembershipChange::InvitationAccepted) = room_membership_change.change() { + log!("Accept an invite."); submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) } } From e5bca27bf7d3453317430139c12d4d59723e4e59 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 19:58:25 +0800 Subject: [PATCH 10/27] Delete log files --- .log | 149 ----------------------------------------------------- Cargo.toml | 2 - 2 files changed, 151 deletions(-) delete mode 100644 .log diff --git a/.log b/.log deleted file mode 100644 index 21798a7..0000000 --- a/.log +++ /dev/null @@ -1,149 +0,0 @@ -src/app.rs:173:9 - App::handle_startup(): app_data_dir: "/home/lym/.local/share/robrix" -src/app.rs:177:9 - App::handle_startup(): starting matrix sdk loop -src/sliding_sync.rs:401:5 - Started async_worker task. -src/sliding_sync.rs:1046:5 - Most recent user ID: Some("@demolemon:matrix.org") -src/sliding_sync.rs:1050:5 - CLI parsing succeeded? false. CLI has valid UN+PW? false -src/sliding_sync.rs:1058:5 - Waiting for login? false -src/sliding_sync.rs:1067:9 - Trying to restore session for user: Some("@demolemon:matrix.org") -src/persistent_state.rs:101:5 - Loading previous session file for @demolemon:matrix.org...: '/home/lym/.local/share/robrix/demolemon_matrix.org/persistent_state/session' -src/persistent_state.rs:113:5 - Loaded session file for @demolemon:matrix.org. Trying to connect to homeserver (https://matrix-client.matrix.org/)... -2024-12-27T11:56:32.900552Z  INFO build{homeserver=ServerNameOrHomeserverUrl("https://matrix-client.matrix.org/")}: matrix_sdk::client::builder: selected sliding sync version version=Native -src/persistent_state.rs:126:5 - Authenticating previous login session for @demolemon:matrix.org... -2024-12-27T11:56:32.912440Z  INFO matrix_sdk::encryption::backups: Setting up secret listeners and trying to resume backups -src/verification.rs:25:5 - Initial verification state is Unknown -src/sliding_sync.rs:1477:5 - Initial ignored-user list is: [] -2024-12-27T11:56:32.913095Z  INFO matrix_sdk::encryption::recovery: Setting up account data listeners and trying to setup recovery -src/sliding_sync.rs:1513:5 - Initial sync service state is Idle -src/sliding_sync.rs:1529:5 - Initial room list loading state is NotLoaded -src/sliding_sync.rs:1516:13 - Received a sync service state update: Running -2024-12-27T11:56:32.914076Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!wxRBAsDVqEDXBQdGVR:matrix.org`, the timeline will be empty. -src/sliding_sync.rs:1532:13 - Received a room list loading state update: NotLoaded -2024-12-27T11:56:32.914527Z  INFO next_sync_with_lock:sync_once: matrix_sdk::sliding_sync: Marking all tracked users as dirty -src/app.rs:184:17 - Received LoginAction::LoginSuccess, hiding login view. -src/home/rooms_list.rs:351:17 - RoomsList: processed 3 updates to the list of all rooms -2024-12-27T11:56:33.327339Z  INFO matrix_sdk::encryption::recovery: Recovery state changed from Unknown to Incomplete -src/verification.rs:28:13 - Received a verification state update: Unverified -2024-12-27T11:56:33.716153Z  INFO sending_task{room_id=!wxRBAsDVqEDXBQdGVR:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:33.716408Z  INFO local_echo_handler{room_id="!wxRBAsDVqEDXBQdGVR:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !wxRBAsDVqEDXBQdGVR:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !wxRBAsDVqEDXBQdGVR:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !wxRBAsDVqEDXBQdGVR:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:56:33.716680Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!ugrySPqOXlcmORZIwY:matrix.org`, the timeline will be empty. -2024-12-27T11:56:33.716810Z  WARN build{room_id="!ugrySPqOXlcmORZIwY:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:33.717630Z  INFO sending_task{room_id=!ugrySPqOXlcmORZIwY:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:33.717843Z  INFO local_echo_handler{room_id="!ugrySPqOXlcmORZIwY:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !ugrySPqOXlcmORZIwY:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !ugrySPqOXlcmORZIwY:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !ugrySPqOXlcmORZIwY:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:56:33.718032Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!cGyiuCNphlCyGxDYcZ:matrix.org`, the timeline will be empty. -2024-12-27T11:56:33.718136Z  WARN build{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:33.718952Z  INFO sending_task{room_id=!cGyiuCNphlCyGxDYcZ:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:33.719140Z  INFO local_echo_handler{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !cGyiuCNphlCyGxDYcZ:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !cGyiuCNphlCyGxDYcZ:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !cGyiuCNphlCyGxDYcZ:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:56:33.719289Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!moVNEIUPxJZpxRHDUv:matrix.org`, the timeline will be empty. -src/home/rooms_list.rs:351:17 - RoomsList: processed 6 updates to the list of all rooms -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org... -2024-12-27T11:56:33.920864Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) -src/verification.rs:28:13 - Received a verification state update: Unverified -2024-12-27T11:56:34.342476Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -2024-12-27T11:56:34.573569Z  WARN build{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:34.574468Z  INFO sending_task{room_id=!moVNEIUPxJZpxRHDUv:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:34.574730Z  INFO local_echo_handler{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !moVNEIUPxJZpxRHDUv:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !moVNEIUPxJZpxRHDUv:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !moVNEIUPxJZpxRHDUv:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:56:34.574948Z  INFO matrix_sdk_ui::room_list_service::room: No cached sliding sync room found for `!BHcierreUuwCMxVqOf:matrix.org`, the timeline will be empty. -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org... -2024-12-27T11:56:34.632853Z  WARN sync_once:handle_response:handle_timeline{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg" origin_server_ts="2024-12-27T10:13:55.662Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:edovrwKptvEQGGLXGs1IleJukotZxNo+gpk9gJ+uySg" session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-27T11:56:35.054569Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) -2024-12-27T11:56:35.119894Z  WARN build{room_id="!BHcierreUuwCMxVqOf:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:35.120905Z  INFO sending_task{room_id=!BHcierreUuwCMxVqOf:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:35.121182Z  INFO local_echo_handler{room_id="!BHcierreUuwCMxVqOf:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !BHcierreUuwCMxVqOf:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !BHcierreUuwCMxVqOf:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !BHcierreUuwCMxVqOf:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -src/sliding_sync.rs:1532:13 - Received a room list loading state update: Loaded { maximum_number_of_rooms: Some(11) } -src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms -2024-12-27T11:56:35.132535Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org... -src/home/room_screen.rs:1956:13 - Sending a first-time backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org -src/sliding_sync.rs:504:21 - Sending fetch room members request for room !wxRBAsDVqEDXBQdGVR:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org... -2024-12-27T11:56:35.546638Z  WARN build{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:35.550178Z  INFO sending_task{room_id=!MzKbWjifQZZoIBHjCX:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:35.550469Z  INFO local_echo_handler{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !MzKbWjifQZZoIBHjCX:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !MzKbWjifQZZoIBHjCX:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !MzKbWjifQZZoIBHjCX:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org... -2024-12-27T11:56:35.618448Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org, hit start of timeline? no -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:506:21 - Completed fetch room members request for room !wxRBAsDVqEDXBQdGVR:matrix.org. -2024-12-27T11:56:36.004338Z  WARN build{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:36.009060Z  INFO sending_task{room_id=!iYnZafYUoXkeVPOSQh:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:36.009309Z  INFO local_echo_handler{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !iYnZafYUoXkeVPOSQh:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !iYnZafYUoXkeVPOSQh:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !iYnZafYUoXkeVPOSQh:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org... -2024-12-27T11:56:36.176644Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96486591_3323771263_3644895192_263184383_1428616447_11062494413_0_405659", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$PRR9Cvz1GKaRR9sDRrWac3PglNOfvigckaDPLcC_KCE" origin_server_ts="2024-12-27T10:04:32.899Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-27T11:56:36.182876Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96486591_3323771263_3644895192_263184383_1428616447_11062494413_0_405659", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$6oZANyY0TCQ4btosWSmzovwwZk3aQb7drYeAa4TiQP0" origin_server_ts="2024-12-27T10:00:17.966Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-27T11:56:36.188988Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_96486591_3323771263_3644895192_263184383_1428616447_11062494413_0_405659", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$zvoxVs_cZU2v3MZy49OswxL-sBYAooFW1fqytA6CTY8" origin_server_ts="2024-12-27T09:58:55.761Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="Fb3z4bsEqlOP1zptAC4oYYcohzmmevg5saAj7NAmY/w" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org, hit start of timeline? no -2024-12-27T11:56:36.427393Z  WARN build{room_id="!nCULugmcNjxWftdWKg:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:36.430536Z  INFO sending_task{room_id=!nCULugmcNjxWftdWKg:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:36.430758Z  INFO local_echo_handler{room_id="!nCULugmcNjxWftdWKg:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !nCULugmcNjxWftdWKg:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !nCULugmcNjxWftdWKg:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !nCULugmcNjxWftdWKg:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org... -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org, hit start of timeline? no -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-27T11:56:36.806518Z  WARN build{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:36.810419Z  INFO sending_task{room_id=!veagCdDBjKrMsOCzrq:privacytools.io}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:36.810663Z  INFO local_echo_handler{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !veagCdDBjKrMsOCzrq:privacytools.io... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !veagCdDBjKrMsOCzrq:privacytools.io. -src/sliding_sync.rs:1443:5 - Adding new room !veagCdDBjKrMsOCzrq:privacytools.io to ALL_ROOM_INFO. Replaces tombstoned room: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org, hit start of timeline? no -src/sliding_sync.rs:451:29 - Error sending backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) -src/home/room_screen.rs:1642:21 - Pagination error (backwards) in room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) -2024-12-27T11:56:37.202352Z  WARN build{room_id="!eMbtejjAApVrUTLFyB:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:37.205657Z  INFO sending_task{room_id=!eMbtejjAApVrUTLFyB:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:37.205880Z  INFO local_echo_handler{room_id="!eMbtejjAApVrUTLFyB:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !eMbtejjAApVrUTLFyB:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !eMbtejjAApVrUTLFyB:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !eMbtejjAApVrUTLFyB:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-27T11:56:37.206265Z  WARN build{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-27T11:56:37.209016Z  INFO sending_task{room_id=!vVLSRWycKVfdPUWXxI:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-27T11:56:37.209228Z  INFO local_echo_handler{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !vVLSRWycKVfdPUWXxI:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !vVLSRWycKVfdPUWXxI:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !vVLSRWycKVfdPUWXxI:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 22 updates to the list of all rooms -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org, hit start of timeline? no -src/sliding_sync.rs:451:29 - Error sending backwards pagination request for room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) -src/home/room_screen.rs:1642:21 - Pagination error (backwards) in room !wxRBAsDVqEDXBQdGVR:matrix.org: EventCacheError(BackpaginationError(SdkError(Http(Api(Server(ClientApi(Error { status_code: 403, body: Standard { kind: Forbidden, message: "User @demolemon:matrix.org not in room !wxRBAsDVqEDXBQdGVR:matrix.org, and room previews are disabled" } }))))))) -2024-12-27T11:56:55.285067Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:1923:37 - Accept an invite. -src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list -2024-12-27T11:56:55.836635Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) -src/verification.rs:28:13 - Received a verification state update: Unverified -2024-12-27T11:56:56.580698Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-27T11:56:57.422973Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'iW2UuFIP8TdLQvwIrPJcaiCfI6+0tO/o5MjngQHvVU8', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': 'TQb+2zBesxv8+dGNLRrhLz+mDrKyPM7qfPNy1urj6Rv2yuB8LZN/8S63lNX0jgCVLtQdl/mPZrjsLv2VhpGcCg'}}}" } })))) diff --git a/Cargo.toml b/Cargo.toml index 3fab461..b0fe90e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -216,5 +216,3 @@ too_many_arguments = "allow" blocks_in_conditions = "allow" used_underscore_binding = "allow" module_name_repetitions = "allow" -[profile.dev] -debug = 0 From c235423d846862fd4efc43c701eb94d6e5d340a7 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 20:02:41 +0800 Subject: [PATCH 11/27] Correct typo --- src/sliding_sync.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index dba3e1c..5ad25e9 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1894,19 +1894,19 @@ async fn timeline_subscriber_handler( match new_latest.content() { TimelineItemContent::OtherState(other) => { match other.content() { - // Hanle RoomName change event. + // Handle RoomName change event. AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { rooms_list::enqueue_rooms_list_update(RoomsListUpdate::UpdateRoomName { room_id: room_id.clone(), new_room_name: content.name.clone(), }); } - // Hanle RoomAvatar change event. + // Handle RoomAvatar change event. AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { // Set it to `true` if this latest event indicates that the room's avatar has changed. room_avatar_changed = true; } - // Hanle RoomPowerLevels event. + // Handle RoomPowerLevels event. // Submit a `MatrixRequest` to check if the user can send when power levels change. AnyOtherFullStateEventContent::RoomPowerLevels(_power_level_event) => { submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) From 64a4982c2e1ed77f471e55e1d9efdb30416277d6 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 20:08:29 +0800 Subject: [PATCH 12/27] Remove redadant log --- src/sliding_sync.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 5ad25e9..9acfe19 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1920,7 +1920,6 @@ async fn timeline_subscriber_handler( submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) } if let Some(MembershipChange::InvitationAccepted) = room_membership_change.change() { - log!("Accept an invite."); submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) } } From 6df0710143ba933eea189f0d9cf2bc7857b7dfd9 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 20:55:28 +0800 Subject: [PATCH 13/27] Restructure for handling latest event --- src/sliding_sync.rs | 71 ++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 39 deletions(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 9acfe19..5342235 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1888,48 +1888,16 @@ async fn timeline_subscriber_handler( // Update the latest event for this room. if let Some(new_latest) = new_latest_event { if latest_event.as_ref().map_or(true, |ev| ev.timestamp() < new_latest.timestamp()) { - // `room_avatar_changed` is used to monitor if room avatar has changed. - let mut room_avatar_changed = false; - - match new_latest.content() { - TimelineItemContent::OtherState(other) => { - match other.content() { - // Handle RoomName change event. - AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { - rooms_list::enqueue_rooms_list_update(RoomsListUpdate::UpdateRoomName { - room_id: room_id.clone(), - new_room_name: content.name.clone(), - }); - } - // Handle RoomAvatar change event. - AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { - // Set it to `true` if this latest event indicates that the room's avatar has changed. - room_avatar_changed = true; - } - // Handle RoomPowerLevels event. - // Submit a `MatrixRequest` to check if the user can send when power levels change. - AnyOtherFullStateEventContent::RoomPowerLevels(_power_level_event) => { - submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) - } - _ => { } - } - } - TimelineItemContent::MembershipChange(room_membership_change) => { - // Submit a `MatrixRequest` to check if the user can send when invited to a room. - if let Some(MembershipChange::Invited) = room_membership_change.change() { - submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) - } - if let Some(MembershipChange::InvitationAccepted) = room_membership_change.change() { - submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) - } - } - _ => { } - } - - latest_event = Some(new_latest); + // Handle avatar changes. + let room_avatar_changed = update_avatar_for_latest_event(room_id.clone(), &new_latest); if room_avatar_changed { spawn_fetch_room_avatar(room.clone()); } + + // Handle if can send message. + update_if_can_send_message_for_latest_event(room_id.clone(), &new_latest); + + latest_event = Some(new_latest); } } } @@ -1991,6 +1959,31 @@ fn update_avatar_for_latest_event( room_avatar_changed } +/// Updates the latest event for the given room. +/// +/// This function handles and checks permission of sending message. +fn update_if_can_send_message_for_latest_event( + room_id: OwnedRoomId, + event_tl_item: &EventTimelineItem, +) { + match event_tl_item.content() { + TimelineItemContent::OtherState(other) => { + // Handle RoomPowerLevels event. + // Submit a `MatrixRequest` to check if the user can send when power levels change. + if let AnyOtherFullStateEventContent::RoomPowerLevels(_room_power_levels_event) = other.content() { + submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) + } + } + + TimelineItemContent::MembershipChange(room_membership_change) => { + // Submit a `MatrixRequest` to check if the user can send when invited to a room. + if let Some(MembershipChange::InvitationAccepted) = room_membership_change.change() { + submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) + } + } + _ => { } + } +} /// Spawn a new async task to fetch the room's new avatar. fn spawn_fetch_room_avatar(room: Room) { From 40a1b331bbe8a76c1162085676b5dc476f08303b Mon Sep 17 00:00:00 2001 From: aaravlu Date: Fri, 27 Dec 2024 20:58:19 +0800 Subject: [PATCH 14/27] Remove redadant checks for updating avator --- src/sliding_sync.rs | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 5342235..c2efe23 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1928,27 +1928,19 @@ fn update_avatar_for_latest_event( let (timestamp, latest_message_text) = get_latest_event_details(event_tl_item, &room_id); // Check for relevant state events. - match event_tl_item.content() { - TimelineItemContent::OtherState(other) => { - match other.content() { - AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { + if let TimelineItemContent::OtherState(other) = event_tl_item.content() { + match other.content() { + AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { rooms_list::enqueue_rooms_list_update(RoomsListUpdate::UpdateRoomName { - room_id: room_id.clone(), - new_room_name: content.name.clone(), - }); - } - AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { - room_avatar_changed = true; - } - _ => { } + room_id: room_id.clone(), + new_room_name: content.name.clone(), + }); } - } - TimelineItemContent::MembershipChange(room_membership_change) => { - if let Some(MembershipChange::Invited) = room_membership_change.change() { - + AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { + room_avatar_changed = true; } + _ => { } } - _ => {} } enqueue_rooms_list_update(RoomsListUpdate::UpdateLatestEvent { From d8424ab74b9b13fbc7cdd33a27b6cdea3ea69390 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Sat, 28 Dec 2024 10:34:00 +0800 Subject: [PATCH 15/27] Merge two functions into 'update_latest_events' --- src/sliding_sync.rs | 99 ++++++++++++++++++++++----------------------- 1 file changed, 48 insertions(+), 51 deletions(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index c2efe23..dd2f874 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -10,7 +10,7 @@ use matrix_sdk::{ api::client::{receipt::create_receipt::v3::ReceiptType, session::get_login_types::v3::LoginType}, events::{ receipt::ReceiptThread, room::{ message::{ForwardThread, RoomMessageEventContent}, MediaSource - }, FullStateEventContent + }, FullStateEventContent, MessageLikeEventType }, MilliSecondsSinceUnixEpoch, OwnedEventId, OwnedMxcUri, OwnedRoomAliasId, OwnedRoomId, OwnedUserId, UserId }, sliding_sync::VersionBuilder, Client, Error, Room }; @@ -809,7 +809,7 @@ async fn async_worker( let _check_can_user_send_message_task = Handle::current().spawn(async move { let can_user_send_message = timeline.room().can_user_send_message( &user_id, - matrix_sdk::ruma::events::MessageLikeEventType::Message + MessageLikeEventType::Message ) .await .unwrap_or(true); @@ -1312,7 +1312,7 @@ async fn update_room( if let Some(old_latest_event) = old_room.latest_event().await { if new_latest_event.timestamp() > old_latest_event.timestamp() { log!("Updating latest event for room {}", new_room_id); - room_avatar_changed = update_avatar_for_latest_event(new_room_id.clone(), &new_latest_event); + (room_avatar_changed, _) = update_latest_event(new_room_id.clone(), &new_latest_event); } } } @@ -1888,14 +1888,15 @@ async fn timeline_subscriber_handler( // Update the latest event for this room. if let Some(new_latest) = new_latest_event { if latest_event.as_ref().map_or(true, |ev| ev.timestamp() < new_latest.timestamp()) { - // Handle avatar changes. - let room_avatar_changed = update_avatar_for_latest_event(room_id.clone(), &new_latest); + let (room_avatar_changed, can_user_send_message) = update_latest_event(room_id.clone(), &new_latest); + if room_avatar_changed { spawn_fetch_room_avatar(room.clone()); } - // Handle if can send message. - update_if_can_send_message_for_latest_event(room_id.clone(), &new_latest); + if let Err(e) = timeline_update_sender.send(TimelineUpdate::CanUserSendMessage(can_user_send_message)) { + error!("Failed to send the result of if user can send message: {e}") + } latest_event = Some(new_latest); } @@ -1911,70 +1912,66 @@ async fn timeline_subscriber_handler( error!("Error: unexpectedly ended timeline subscriber for room {room_id}."); } - /// Updates the latest event for the given room. /// -/// This function handles room name changes and checks for (but does not directly handle) -/// room avatar changes. +/// This function currently handles room name, avator and send permission changes +/// (but does not directly handle). /// -/// Returns `true` if this latest event indicates that the room's avatar has changed +/// Returns `true` if those have changed /// and should also be updated. -fn update_avatar_for_latest_event( +fn update_latest_event( room_id: OwnedRoomId, event_tl_item: &EventTimelineItem, -) -> bool { +) -> (bool, bool) { let mut room_avatar_changed = false; + let mut can_user_send_message = true; let (timestamp, latest_message_text) = get_latest_event_details(event_tl_item, &room_id); - - // Check for relevant state events. - if let TimelineItemContent::OtherState(other) = event_tl_item.content() { - match other.content() { - AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { - rooms_list::enqueue_rooms_list_update(RoomsListUpdate::UpdateRoomName { - room_id: room_id.clone(), - new_room_name: content.name.clone(), - }); - } - AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { - room_avatar_changed = true; - } - _ => { } - } - } - - enqueue_rooms_list_update(RoomsListUpdate::UpdateLatestEvent { - room_id, - timestamp, - latest_message_text, - }); - room_avatar_changed -} - -/// Updates the latest event for the given room. -/// -/// This function handles and checks permission of sending message. -fn update_if_can_send_message_for_latest_event( - room_id: OwnedRoomId, - event_tl_item: &EventTimelineItem, -) { match event_tl_item.content() { + // Check for relevant state events. TimelineItemContent::OtherState(other) => { - // Handle RoomPowerLevels event. - // Submit a `MatrixRequest` to check if the user can send when power levels change. - if let AnyOtherFullStateEventContent::RoomPowerLevels(_room_power_levels_event) = other.content() { - submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) + match other.content() { + // Check for room name changes. + AnyOtherFullStateEventContent::RoomName(FullStateEventContent::Original { content, .. }) => { + rooms_list::enqueue_rooms_list_update(RoomsListUpdate::UpdateRoomName { + room_id: room_id.clone(), + new_room_name: content.name.clone(), + }); + } + // Check for room avator changes. + AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { + room_avatar_changed = true; + } + // Check for if can user send message. + AnyOtherFullStateEventContent::RoomPowerLevels(room_power_levels_event) => { + if let FullStateEventContent::Original { content, prev_content: _ } = room_power_levels_event { + if let Some(user_id) = current_user_id() { + if let Some(power) = content.users.get(&user_id) { + if let Some(room_send_message_level) = content.events.get(&matrix_sdk::ruma::events::TimelineEventType::Message) { + can_user_send_message = power >= room_send_message_level + } + } + } + } } + _ => { } } - + } TimelineItemContent::MembershipChange(room_membership_change) => { - // Submit a `MatrixRequest` to check if the user can send when invited to a room. + // Submit a `MatrixRequest` to check if the user can send when invited to a room successfully. if let Some(MembershipChange::InvitationAccepted) = room_membership_change.change() { submit_async_request(MatrixRequest::CheckCanUserSendMessage { room_id: room_id.clone() }) } } _ => { } } + + enqueue_rooms_list_update(RoomsListUpdate::UpdateLatestEvent { + room_id, + timestamp, + latest_message_text, + }); + (room_avatar_changed, can_user_send_message) } /// Spawn a new async task to fetch the room's new avatar. From 4bdfd82b73789f905243cb6979dc6ae30d48f2d5 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Sat, 28 Dec 2024 10:41:58 +0800 Subject: [PATCH 16/27] Fix clippy --- src/sliding_sync.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index dd2f874..d3bff50 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1943,13 +1943,11 @@ fn update_latest_event( room_avatar_changed = true; } // Check for if can user send message. - AnyOtherFullStateEventContent::RoomPowerLevels(room_power_levels_event) => { - if let FullStateEventContent::Original { content, prev_content: _ } = room_power_levels_event { - if let Some(user_id) = current_user_id() { - if let Some(power) = content.users.get(&user_id) { - if let Some(room_send_message_level) = content.events.get(&matrix_sdk::ruma::events::TimelineEventType::Message) { - can_user_send_message = power >= room_send_message_level - } + AnyOtherFullStateEventContent::RoomPowerLevels(FullStateEventContent::Original { content, prev_content: _ }) => { + if let Some(user_id) = current_user_id() { + if let Some(power) = content.users.get(&user_id) { + if let Some(room_send_message_level) = content.events.get(&matrix_sdk::ruma::events::TimelineEventType::Message) { + can_user_send_message = power >= room_send_message_level } } } From 429e56d04dca343ad127f0f83c82c8bf36bd04e1 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Sat, 28 Dec 2024 10:48:02 +0800 Subject: [PATCH 17/27] Fix typo --- src/sliding_sync.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index d3bff50..5f4bf23 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1914,7 +1914,7 @@ async fn timeline_subscriber_handler( /// Updates the latest event for the given room. /// -/// This function currently handles room name, avator and send permission changes +/// This function currently handles room name, avatar and send permission changes /// (but does not directly handle). /// /// Returns `true` if those have changed @@ -1938,7 +1938,7 @@ fn update_latest_event( new_room_name: content.name.clone(), }); } - // Check for room avator changes. + // Check for room avatar changes. AnyOtherFullStateEventContent::RoomAvatar(_avatar_event) => { room_avatar_changed = true; } From fa267c081bd31e74d40591ee0b4e048de425aa08 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Sat, 28 Dec 2024 11:40:50 +0800 Subject: [PATCH 18/27] Correct API --- src/sliding_sync.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 5f4bf23..5788250 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1945,10 +1945,8 @@ fn update_latest_event( // Check for if can user send message. AnyOtherFullStateEventContent::RoomPowerLevels(FullStateEventContent::Original { content, prev_content: _ }) => { if let Some(user_id) = current_user_id() { - if let Some(power) = content.users.get(&user_id) { - if let Some(room_send_message_level) = content.events.get(&matrix_sdk::ruma::events::TimelineEventType::Message) { - can_user_send_message = power >= room_send_message_level - } + if let Some(user_power) = content.users.get(&user_id) { + can_user_send_message = user_power >= &content.events_default } } } @@ -1969,6 +1967,7 @@ fn update_latest_event( timestamp, latest_message_text, }); + log!("can_user_send_message: {can_user_send_message}"); (room_avatar_changed, can_user_send_message) } From d5303ab7f44b9acf69d3b161c6416cd91d74f9b1 Mon Sep 17 00:00:00 2001 From: aaravlu Date: Sat, 28 Dec 2024 11:48:42 +0800 Subject: [PATCH 19/27] Remove redadant log --- .log | 190 ++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 2 + src/sliding_sync.rs | 1 - 3 files changed, 192 insertions(+), 1 deletion(-) create mode 100644 .log diff --git a/.log b/.log new file mode 100644 index 0000000..b5940ad --- /dev/null +++ b/.log @@ -0,0 +1,190 @@ +src/app.rs:173:9 - App::handle_startup(): app_data_dir: "/home/lym/.local/share/robrix" +src/app.rs:177:9 - App::handle_startup(): starting matrix sdk loop +src/sliding_sync.rs:401:5 - Started async_worker task. +src/sliding_sync.rs:1046:5 - Most recent user ID: Some("@demolemon:matrix.org") +src/sliding_sync.rs:1050:5 - CLI parsing succeeded? false. CLI has valid UN+PW? false +src/sliding_sync.rs:1058:5 - Waiting for login? false +src/sliding_sync.rs:1067:9 - Trying to restore session for user: Some("@demolemon:matrix.org") +src/persistent_state.rs:101:5 - Loading previous session file for @demolemon:matrix.org...: '/home/lym/.local/share/robrix/demolemon_matrix.org/persistent_state/session' +src/persistent_state.rs:113:5 - Loaded session file for @demolemon:matrix.org. Trying to connect to homeserver (https://matrix-client.matrix.org/)... +2024-12-28T03:42:32.355024Z  INFO build{homeserver=ServerNameOrHomeserverUrl("https://matrix-client.matrix.org/")}: matrix_sdk::client::builder: selected sliding sync version version=Native +src/persistent_state.rs:126:5 - Authenticating previous login session for @demolemon:matrix.org... +2024-12-28T03:42:32.367344Z  INFO matrix_sdk::encryption::backups: Setting up secret listeners and trying to resume backups +src/verification.rs:25:5 - Initial verification state is Unknown +src/sliding_sync.rs:1477:5 - Initial ignored-user list is: [] +2024-12-28T03:42:32.367760Z  INFO matrix_sdk::encryption::recovery: Setting up account data listeners and trying to setup recovery +src/sliding_sync.rs:1513:5 - Initial sync service state is Idle +src/sliding_sync.rs:1529:5 - Initial room list loading state is Loaded { maximum_number_of_rooms: Some(11) } +src/sliding_sync.rs:1516:13 - Received a sync service state update: Running +2024-12-28T03:42:32.370519Z  INFO next_sync_with_lock:sync_once: matrix_sdk::sliding_sync: Marking all tracked users as dirty +src/app.rs:184:17 - Received LoginAction::LoginSuccess, hiding login view. +2024-12-28T03:42:32.378839Z  WARN build{room_id="!ZJEzvNtzSGkPSynJpH:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +src/sliding_sync.rs:1532:13 - Received a room list loading state update: Loaded { maximum_number_of_rooms: Some(11) } +2024-12-28T03:42:32.385231Z  INFO sending_task{room_id=!ZJEzvNtzSGkPSynJpH:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.385524Z  INFO local_echo_handler{room_id="!ZJEzvNtzSGkPSynJpH:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !ZJEzvNtzSGkPSynJpH:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 3 items for room !ZJEzvNtzSGkPSynJpH:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !ZJEzvNtzSGkPSynJpH:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.394252Z  WARN build{room_id="!BHcierreUuwCMxVqOf:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.399184Z  INFO sending_task{room_id=!BHcierreUuwCMxVqOf:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.399448Z  INFO local_echo_handler{room_id="!BHcierreUuwCMxVqOf:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !BHcierreUuwCMxVqOf:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !BHcierreUuwCMxVqOf:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !BHcierreUuwCMxVqOf:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.406779Z  WARN build{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.410935Z  INFO sending_task{room_id=!iYnZafYUoXkeVPOSQh:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.411249Z  INFO local_echo_handler{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !iYnZafYUoXkeVPOSQh:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !iYnZafYUoXkeVPOSQh:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !iYnZafYUoXkeVPOSQh:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.416489Z  WARN build{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.419905Z  INFO sending_task{room_id=!moVNEIUPxJZpxRHDUv:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.420149Z  INFO local_echo_handler{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !moVNEIUPxJZpxRHDUv:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !moVNEIUPxJZpxRHDUv:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !moVNEIUPxJZpxRHDUv:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.425321Z  WARN build{room_id="!ugrySPqOXlcmORZIwY:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.428106Z  INFO sending_task{room_id=!ugrySPqOXlcmORZIwY:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.428337Z  INFO local_echo_handler{room_id="!ugrySPqOXlcmORZIwY:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +2024-12-28T03:42:32.434827Z  WARN retry_one{session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg"}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg" origin_server_ts="2024-12-27T10:13:55.662Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:edovrwKptvEQGGLXGs1IleJukotZxNo+gpk9gJ+uySg" session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !ugrySPqOXlcmORZIwY:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !ugrySPqOXlcmORZIwY:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !ugrySPqOXlcmORZIwY:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.440737Z  WARN build{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.441509Z  INFO sending_task{room_id=!cGyiuCNphlCyGxDYcZ:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.441735Z  INFO local_echo_handler{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !cGyiuCNphlCyGxDYcZ:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !cGyiuCNphlCyGxDYcZ:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !cGyiuCNphlCyGxDYcZ:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.446851Z  WARN build{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.449643Z  INFO sending_task{room_id=!MzKbWjifQZZoIBHjCX:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.449863Z  INFO local_echo_handler{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !MzKbWjifQZZoIBHjCX:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !MzKbWjifQZZoIBHjCX:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !MzKbWjifQZZoIBHjCX:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.455065Z  WARN build{room_id="!nCULugmcNjxWftdWKg:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.457709Z  INFO sending_task{room_id=!nCULugmcNjxWftdWKg:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.457972Z  INFO local_echo_handler{room_id="!nCULugmcNjxWftdWKg:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !nCULugmcNjxWftdWKg:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !nCULugmcNjxWftdWKg:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !nCULugmcNjxWftdWKg:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.463198Z  WARN build{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.466573Z  INFO sending_task{room_id=!veagCdDBjKrMsOCzrq:privacytools.io}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.466787Z  INFO local_echo_handler{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !veagCdDBjKrMsOCzrq:privacytools.io... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !veagCdDBjKrMsOCzrq:privacytools.io. +src/sliding_sync.rs:1443:5 - Adding new room !veagCdDBjKrMsOCzrq:privacytools.io to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.471934Z  WARN build{room_id="!eMbtejjAApVrUTLFyB:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.474737Z  INFO sending_task{room_id=!eMbtejjAApVrUTLFyB:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.474949Z  INFO local_echo_handler{room_id="!eMbtejjAApVrUTLFyB:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !eMbtejjAApVrUTLFyB:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !eMbtejjAApVrUTLFyB:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !eMbtejjAApVrUTLFyB:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +2024-12-28T03:42:32.480098Z  WARN build{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 +2024-12-28T03:42:32.482578Z  INFO sending_task{room_id=!vVLSRWycKVfdPUWXxI:matrix.org}: matrix_sdk::send_queue: spawned the sending task +2024-12-28T03:42:32.482788Z  INFO local_echo_handler{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! +src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !vVLSRWycKVfdPUWXxI:matrix.org... +src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !vVLSRWycKVfdPUWXxI:matrix.org. +src/sliding_sync.rs:1443:5 - Adding new room !vVLSRWycKVfdPUWXxI:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None +src/home/rooms_list.rs:351:17 - RoomsList: processed 25 updates to the list of all rooms +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org... +2024-12-28T03:42:32.764140Z  INFO matrix_sdk::encryption::recovery: Recovery state changed from Unknown to Incomplete +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !veagCdDBjKrMsOCzrq:privacytools.io... +src/verification.rs:28:13 - Received a verification state update: Unverified +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !eMbtejjAApVrUTLFyB:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !vVLSRWycKVfdPUWXxI:matrix.org... +2024-12-28T03:42:33.230704Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org, hit start of timeline? no +2024-12-28T03:42:33.481903Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$PRR9Cvz1GKaRR9sDRrWac3PglNOfvigckaDPLcC_KCE" origin_server_ts="2024-12-27T10:04:32.899Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:33.488040Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$6oZANyY0TCQ4btosWSmzovwwZk3aQb7drYeAa4TiQP0" origin_server_ts="2024-12-27T10:00:17.966Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:33.494494Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$zvoxVs_cZU2v3MZy49OswxL-sBYAooFW1fqytA6CTY8" origin_server_ts="2024-12-27T09:58:55.761Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="Fb3z4bsEqlOP1zptAC4oYYcohzmmevg5saAj7NAmY/w" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org, hit start of timeline? no +src/sliding_sync.rs:1970:5 - can_user_send_message: false +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/verification.rs:28:13 - Received a verification state update: Unverified +2024-12-28T03:42:33.905653Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !veagCdDBjKrMsOCzrq:privacytools.io, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !eMbtejjAApVrUTLFyB:matrix.org, hit start of timeline? no +2024-12-28T03:42:34.335498Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$B8ou8qdmvk2Bcd7_B5fYwdGSDBQpFcad_2wr10wyMfA" origin_server_ts="2024-10-13T02:01:10.047Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:O68EcJ4rBhpomGmkPU8U8NOWbjlO0MgdOQvNoMUjKGs" session_id="LNHthkmg0Ab40t0jU5a2Mvyn9WwCMNtgCurIj4Q63aM" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.341981Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$HKYEB8IRQhDvljIjD4BnzmDL-XhHcpldMV7QhVSRa-M" origin_server_ts="2024-10-07T11:25:21.208Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:5aZTCU65HZ7j+znjd3YRvozWB3qpkq4G3ifUSGdNGQU" session_id="g+WkIWRTpGQnvcj/N9YmeK9nBcybPyvfU5L/NgI7G9o" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.348105Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$dqmlMTRXLhneeS7W_9sLKAwBI42UkBeC5Xgj-zVRv5g" origin_server_ts="2024-10-07T05:17:55.139Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=15}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/home/room_screen.rs:1956:13 - Sending a first-time backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org +src/sliding_sync.rs:504:21 - Sending fetch room members request for room !ZJEzvNtzSGkPSynJpH:matrix.org... +src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org... +src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list +src/sliding_sync.rs:506:21 - Completed fetch room members request for room !ZJEzvNtzSGkPSynJpH:matrix.org. +2024-12-28T03:42:34.354314Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$nXntWh-5BQ4e8PGeCaFG0CWL3XuVjSAcLHRUgP8mqs4" origin_server_ts="2024-10-07T05:14:15.152Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:bL+iE4J14LiR4YgtLnRNkMQI/5gudrRlxfmmDgoiGFc" session_id="I9NEzZUsqDCthLlR1fRj/QBP01dHX6zJDWV/FbVisB8" message_index=2}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.360359Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$Zk9Ru1R9R98PBOmr8ayMsk8qES87lYIWMWYlqYxK4xk" origin_server_ts="2024-10-07T02:44:48.721Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:wZVXHZKrmt33qGsX63Av2xI/JFx1bcOS2dqIcw7uGVE" session_id="9j5UkjluGI807H9xZv67Lr5qTxLPDDACPv35jB++nnE" message_index=3}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.366431Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$Dt5Mu084sNvpfQzsZujwwVcO2Z2ZRwJ7NaZbhpgDCtQ" origin_server_ts="2024-10-06T16:31:16.129Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:bL+iE4J14LiR4YgtLnRNkMQI/5gudrRlxfmmDgoiGFc" session_id="I9NEzZUsqDCthLlR1fRj/QBP01dHX6zJDWV/FbVisB8" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.372404Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$YDiOCFNekVMKrKqKK49ERE6nU8qX8cLdYjF98sP6rcQ" origin_server_ts="2024-10-06T16:10:16.607Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:wZVXHZKrmt33qGsX63Av2xI/JFx1bcOS2dqIcw7uGVE" session_id="9j5UkjluGI807H9xZv67Lr5qTxLPDDACPv35jB++nnE" message_index=2}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.378428Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$_T1TJe5RJPFYDbcbJhYPvgf3QukLfmQJYQUnNm71YDg" origin_server_ts="2024-10-06T15:50:14.140Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:vxNidNk6RfxEtCSapuSmXnoASujj0+ivqQPXjAYaFhA" session_id="So6yjTWtj7Vum67zuy5OmEPnL8dn2jCF8pke4F8q9bc" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.384386Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$H1zMdOPvgNchychNZI2QZsUEVTnjTU88WrN-ZfKbinU" origin_server_ts="2024-10-06T15:40:10.602Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:vxNidNk6RfxEtCSapuSmXnoASujj0+ivqQPXjAYaFhA" session_id="So6yjTWtj7Vum67zuy5OmEPnL8dn2jCF8pke4F8q9bc" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.384723Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) +2024-12-28T03:42:34.390566Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$2mNLdYjHNdy7lkw4QBLE1ix1_xhcU0A8blvRGqx9XbM" origin_server_ts="2024-10-06T14:23:53.072Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=14}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.396267Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +2024-12-28T03:42:34.396613Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$1QTfEjmtFmntUJS4D6TKPSaaLi333Bpgaf4g7Cp6980" origin_server_ts="2024-10-06T14:18:11.001Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=13}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.402829Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$ioJlXq9bLXo9MGFyRcmYwGYuA_jsAF6GXReTiPONWiU" origin_server_ts="2024-10-05T07:14:20.519Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=8}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.408875Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$oW9NChORvjn5XgG-hmqAFC49yfdK4uDndp_Scrj8474" origin_server_ts="2024-10-05T07:11:57.516Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=6}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.415097Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$xepl_6XCcKa2nYtlVoj0VU5-bgjAhxPL3RWXTjqvDfk" origin_server_ts="2024-10-05T06:52:50.493Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=5}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.421147Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$RMZTWP3_fzm48tfz8rsJRw4eaoIaBjLwF1HkQOoqT5s" origin_server_ts="2024-10-05T06:52:47.431Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=4}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.427130Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$JV8HpscovGnryGyITdXEj2foX9lEnlVh4gutpZC9rsk" origin_server_ts="2024-10-05T03:38:19.043Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=3}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.433092Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$pat6_cJf_hZrkQ2lGlEolUE4XiLTyog699TmkMQCh_c" origin_server_ts="2024-10-05T03:38:01.002Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=2}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.439393Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$k4xTVH0vXSyFEXgOLatv3NEHXlQFmBjoZe-jCMl9ezg" origin_server_ts="2024-10-04T07:04:56.065Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ZpyriYGpLc4rpaz/remahZc502DFJNxtLSMI36nL/z0" session_id="+e5iVj4/nzQ/tDxQ8+whChxs/mvPilxuzCTMKX7zOkU" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.445792Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$xbqml9pSNjdkbxaozgV2QTovYUJJI4Nk8UU5iB3j1JM" origin_server_ts="2024-10-04T06:54:20.969Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:wZVXHZKrmt33qGsX63Av2xI/JFx1bcOS2dqIcw7uGVE" session_id="9j5UkjluGI807H9xZv67Lr5qTxLPDDACPv35jB++nnE" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.451994Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$CUF38Uqa9EdpsDT_cpnAOBkMa89hh8z4HBZgzSfNd-k" origin_server_ts="2024-10-04T06:53:57.205Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.458035Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$u4gRscyKN18OCWzNBOhe_fgvieTNgYrJHLAoTI9lmTU" origin_server_ts="2024-10-04T06:42:38.737Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=12}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.464106Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$VqHEMH5zCmX2zmqDiFl_U_iZCizvo6p12IgiOkWDRF4" origin_server_ts="2024-10-04T06:42:37.786Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=11}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.470146Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$uVJtpquur5Yd8-IAKkg95tuReBc-ke08zWYFsVV8cX0" origin_server_ts="2024-10-04T06:36:42.179Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=10}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.476169Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$cBykXBMNT2ywKGV40gV08hNTz_aRpQbkdwiSzbqkE5A" origin_server_ts="2024-10-04T06:36:41.400Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=9}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.482157Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$iu4ZIidhssTAsApg85_WOa9iGqi0D3Xdv-1HJJ0djJY" origin_server_ts="2024-10-04T06:36:21.448Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=8}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.488123Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$LK8zlBqCI791TwBpASeC7gHzW3XKuw9F_SQtbWi2yKc" origin_server_ts="2024-10-04T06:36:20.657Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=7}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.494133Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$ZAMtMsk21jAiUPGiHiQtO4E3nXdCbV2YT_LXch1k4Vo" origin_server_ts="2024-10-04T06:29:44.067Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=6}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.500098Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$mN6Mnwceuw6OFj5mEal-CSTcFxV08RWKaXg6zJOqMRE" origin_server_ts="2024-10-04T06:23:28.619Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=5}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.506173Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$jXfTSVljnUKx_4kGPo2EhwxAD7dss8-liZwdI-Zv3T8" origin_server_ts="2024-10-04T06:17:13.352Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=4}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.512170Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$O7DjgqiVfIvjiZXT5fQsaUN4xWJSaJH3GVKuMHeUvh4" origin_server_ts="2024-10-04T06:09:47.160Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.518110Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$gTS5Xm3WhDNvBPZw3EfdwGd7_4MMtZG8am88e7l5p0A" origin_server_ts="2024-10-04T06:08:38.495Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=3}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.524105Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$H0Ns4HQfQOv3Rbi3iHKA68qU8B6w4WYOx-g2iD9g-1Y" origin_server_ts="2024-10-01T16:30:48.817Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=2}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.530059Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$ufd87q_PCEFF84oo_5avwmVEr3BboPjjB8o5Ov-tB9Y" origin_server_ts="2024-10-01T16:30:27.950Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:wZVXHZKrmt33qGsX63Av2xI/JFx1bcOS2dqIcw7uGVE" session_id="9j5UkjluGI807H9xZv67Lr5qTxLPDDACPv35jB++nnE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.536142Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$5holrQjj9JRrh_Dy2ACDOQF4Me3u9Ro2dPdjiQKivB8" origin_server_ts="2024-10-01T16:26:11.286Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +2024-12-28T03:42:34.542615Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$qVwvW8yWNADlVlZV40Pif-lH1-A2ClgGlNyv2Ua8GlQ" origin_server_ts="2024-10-01T16:26:09.327Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !vVLSRWycKVfdPUWXxI:matrix.org, hit start of timeline? no +src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org, hit start of timeline? yes +2024-12-28T03:42:34.855559Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) +2024-12-28T03:42:40.207278Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/sliding_sync.rs:1970:5 - can_user_send_message: true +src/sliding_sync.rs:1532:13 - Received a room list loading state update: Loaded { maximum_number_of_rooms: Some(11) } +src/home/room_screen.rs:2415:17 - Found matching event ID $nMuQRoBJmqZxkAQNXmbeLONUoJPh44UTzIm0USOsItU at index 15 in new items list, corresponding to current item index 15 at pos offset -11.5 +src/home/rooms_list.rs:351:17 - RoomsList: processed 3 updates to the list of all rooms +2024-12-28T03:42:40.691321Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) +src/sliding_sync.rs:772:37 - Sent read receipt to room !ZJEzvNtzSGkPSynJpH:matrix.org for event $Ft_KnylNbt6S4V_7eeKdlIlKMU3gwo6742EuwXzvdxM +2024-12-28T03:42:42.339219Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +src/sliding_sync.rs:1970:5 - can_user_send_message: false +2024-12-28T03:42:42.799320Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) +2024-12-28T03:42:42.808942Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/home/room_screen.rs:2415:17 - Found matching event ID $pQ2gbI6-6XcIGA0UhGTy4xVmVFFxJgdZSeffjEVZ6mY at index 17 in new items list, corresponding to current item index 17 at pos offset -3.1940507207309565 +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-28T03:42:43.311545Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) +2024-12-28T03:42:44.930512Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/sliding_sync.rs:1970:5 - can_user_send_message: true +src/home/room_screen.rs:2415:17 - Found matching event ID $pQ2gbI6-6XcIGA0UhGTy4xVmVFFxJgdZSeffjEVZ6mY at index 17 in new items list, corresponding to current item index 17 at pos offset -11.5 +src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms +2024-12-28T03:42:45.405112Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) +src/sliding_sync.rs:772:37 - Sent read receipt to room !ZJEzvNtzSGkPSynJpH:matrix.org for event $w3sJPn7Q7bNLe_GLkiWJJjuyFimflRS5qtjbtLqWjyw +2024-12-28T03:42:45.853549Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found +src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms +2024-12-28T03:42:46.336070Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) diff --git a/Cargo.toml b/Cargo.toml index b0fe90e..3fab461 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -216,3 +216,5 @@ too_many_arguments = "allow" blocks_in_conditions = "allow" used_underscore_binding = "allow" module_name_repetitions = "allow" +[profile.dev] +debug = 0 diff --git a/src/sliding_sync.rs b/src/sliding_sync.rs index 5788250..413937b 100644 --- a/src/sliding_sync.rs +++ b/src/sliding_sync.rs @@ -1967,7 +1967,6 @@ fn update_latest_event( timestamp, latest_message_text, }); - log!("can_user_send_message: {can_user_send_message}"); (room_avatar_changed, can_user_send_message) } From b22ed1508d7bfa59f1e8555341a00ef89dab7d7f Mon Sep 17 00:00:00 2001 From: aaravlu Date: Sat, 28 Dec 2024 11:49:06 +0800 Subject: [PATCH 20/27] Rremove log files --- .log | 190 ----------------------------------------------------- Cargo.toml | 2 - 2 files changed, 192 deletions(-) delete mode 100644 .log diff --git a/.log b/.log deleted file mode 100644 index b5940ad..0000000 --- a/.log +++ /dev/null @@ -1,190 +0,0 @@ -src/app.rs:173:9 - App::handle_startup(): app_data_dir: "/home/lym/.local/share/robrix" -src/app.rs:177:9 - App::handle_startup(): starting matrix sdk loop -src/sliding_sync.rs:401:5 - Started async_worker task. -src/sliding_sync.rs:1046:5 - Most recent user ID: Some("@demolemon:matrix.org") -src/sliding_sync.rs:1050:5 - CLI parsing succeeded? false. CLI has valid UN+PW? false -src/sliding_sync.rs:1058:5 - Waiting for login? false -src/sliding_sync.rs:1067:9 - Trying to restore session for user: Some("@demolemon:matrix.org") -src/persistent_state.rs:101:5 - Loading previous session file for @demolemon:matrix.org...: '/home/lym/.local/share/robrix/demolemon_matrix.org/persistent_state/session' -src/persistent_state.rs:113:5 - Loaded session file for @demolemon:matrix.org. Trying to connect to homeserver (https://matrix-client.matrix.org/)... -2024-12-28T03:42:32.355024Z  INFO build{homeserver=ServerNameOrHomeserverUrl("https://matrix-client.matrix.org/")}: matrix_sdk::client::builder: selected sliding sync version version=Native -src/persistent_state.rs:126:5 - Authenticating previous login session for @demolemon:matrix.org... -2024-12-28T03:42:32.367344Z  INFO matrix_sdk::encryption::backups: Setting up secret listeners and trying to resume backups -src/verification.rs:25:5 - Initial verification state is Unknown -src/sliding_sync.rs:1477:5 - Initial ignored-user list is: [] -2024-12-28T03:42:32.367760Z  INFO matrix_sdk::encryption::recovery: Setting up account data listeners and trying to setup recovery -src/sliding_sync.rs:1513:5 - Initial sync service state is Idle -src/sliding_sync.rs:1529:5 - Initial room list loading state is Loaded { maximum_number_of_rooms: Some(11) } -src/sliding_sync.rs:1516:13 - Received a sync service state update: Running -2024-12-28T03:42:32.370519Z  INFO next_sync_with_lock:sync_once: matrix_sdk::sliding_sync: Marking all tracked users as dirty -src/app.rs:184:17 - Received LoginAction::LoginSuccess, hiding login view. -2024-12-28T03:42:32.378839Z  WARN build{room_id="!ZJEzvNtzSGkPSynJpH:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -src/sliding_sync.rs:1532:13 - Received a room list loading state update: Loaded { maximum_number_of_rooms: Some(11) } -2024-12-28T03:42:32.385231Z  INFO sending_task{room_id=!ZJEzvNtzSGkPSynJpH:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.385524Z  INFO local_echo_handler{room_id="!ZJEzvNtzSGkPSynJpH:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !ZJEzvNtzSGkPSynJpH:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 3 items for room !ZJEzvNtzSGkPSynJpH:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !ZJEzvNtzSGkPSynJpH:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.394252Z  WARN build{room_id="!BHcierreUuwCMxVqOf:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.399184Z  INFO sending_task{room_id=!BHcierreUuwCMxVqOf:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.399448Z  INFO local_echo_handler{room_id="!BHcierreUuwCMxVqOf:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !BHcierreUuwCMxVqOf:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !BHcierreUuwCMxVqOf:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !BHcierreUuwCMxVqOf:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.406779Z  WARN build{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.410935Z  INFO sending_task{room_id=!iYnZafYUoXkeVPOSQh:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.411249Z  INFO local_echo_handler{room_id="!iYnZafYUoXkeVPOSQh:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !iYnZafYUoXkeVPOSQh:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !iYnZafYUoXkeVPOSQh:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !iYnZafYUoXkeVPOSQh:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.416489Z  WARN build{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.419905Z  INFO sending_task{room_id=!moVNEIUPxJZpxRHDUv:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.420149Z  INFO local_echo_handler{room_id="!moVNEIUPxJZpxRHDUv:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !moVNEIUPxJZpxRHDUv:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !moVNEIUPxJZpxRHDUv:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !moVNEIUPxJZpxRHDUv:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.425321Z  WARN build{room_id="!ugrySPqOXlcmORZIwY:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.428106Z  INFO sending_task{room_id=!ugrySPqOXlcmORZIwY:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.428337Z  INFO local_echo_handler{room_id="!ugrySPqOXlcmORZIwY:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -2024-12-28T03:42:32.434827Z  WARN retry_one{session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg"}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$WrLC6uWcYUfDto1nMzRMKE-Avzm7ExRUx_VVjwDMegg" origin_server_ts="2024-12-27T10:13:55.662Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:edovrwKptvEQGGLXGs1IleJukotZxNo+gpk9gJ+uySg" session_id="+4zeLQVxVXREmZG9mHF2rdSeMy+P39TnIdd3Y32yrBE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !ugrySPqOXlcmORZIwY:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !ugrySPqOXlcmORZIwY:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !ugrySPqOXlcmORZIwY:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.440737Z  WARN build{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.441509Z  INFO sending_task{room_id=!cGyiuCNphlCyGxDYcZ:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.441735Z  INFO local_echo_handler{room_id="!cGyiuCNphlCyGxDYcZ:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !cGyiuCNphlCyGxDYcZ:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 0 items for room !cGyiuCNphlCyGxDYcZ:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !cGyiuCNphlCyGxDYcZ:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.446851Z  WARN build{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.449643Z  INFO sending_task{room_id=!MzKbWjifQZZoIBHjCX:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.449863Z  INFO local_echo_handler{room_id="!MzKbWjifQZZoIBHjCX:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !MzKbWjifQZZoIBHjCX:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !MzKbWjifQZZoIBHjCX:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !MzKbWjifQZZoIBHjCX:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.455065Z  WARN build{room_id="!nCULugmcNjxWftdWKg:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.457709Z  INFO sending_task{room_id=!nCULugmcNjxWftdWKg:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.457972Z  INFO local_echo_handler{room_id="!nCULugmcNjxWftdWKg:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !nCULugmcNjxWftdWKg:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !nCULugmcNjxWftdWKg:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !nCULugmcNjxWftdWKg:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.463198Z  WARN build{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.466573Z  INFO sending_task{room_id=!veagCdDBjKrMsOCzrq:privacytools.io}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.466787Z  INFO local_echo_handler{room_id="!veagCdDBjKrMsOCzrq:privacytools.io" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !veagCdDBjKrMsOCzrq:privacytools.io... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !veagCdDBjKrMsOCzrq:privacytools.io. -src/sliding_sync.rs:1443:5 - Adding new room !veagCdDBjKrMsOCzrq:privacytools.io to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.471934Z  WARN build{room_id="!eMbtejjAApVrUTLFyB:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.474737Z  INFO sending_task{room_id=!eMbtejjAApVrUTLFyB:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.474949Z  INFO local_echo_handler{room_id="!eMbtejjAApVrUTLFyB:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !eMbtejjAApVrUTLFyB:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !eMbtejjAApVrUTLFyB:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !eMbtejjAApVrUTLFyB:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -2024-12-28T03:42:32.480098Z  WARN build{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" track_read_receipts=true}: matrix_sdk_base::rooms::normal: Unknown room version, falling back to v10 -2024-12-28T03:42:32.482578Z  INFO sending_task{room_id=!vVLSRWycKVfdPUWXxI:matrix.org}: matrix_sdk::send_queue: spawned the sending task -2024-12-28T03:42:32.482788Z  INFO local_echo_handler{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" focus="live"}: matrix_sdk_ui::timeline::builder: spawned the local echo handler! -src/sliding_sync.rs:1626:5 - Starting timeline subscriber for room !vVLSRWycKVfdPUWXxI:matrix.org... -src/sliding_sync.rs:1628:5 - Received initial timeline update of 2 items for room !vVLSRWycKVfdPUWXxI:matrix.org. -src/sliding_sync.rs:1443:5 - Adding new room !vVLSRWycKVfdPUWXxI:matrix.org to ALL_ROOM_INFO. Replaces tombstoned room: None -src/home/rooms_list.rs:351:17 - RoomsList: processed 25 updates to the list of all rooms -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org... -2024-12-28T03:42:32.764140Z  INFO matrix_sdk::encryption::recovery: Recovery state changed from Unknown to Incomplete -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !veagCdDBjKrMsOCzrq:privacytools.io... -src/verification.rs:28:13 - Received a verification state update: Unverified -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !eMbtejjAApVrUTLFyB:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !vVLSRWycKVfdPUWXxI:matrix.org... -2024-12-28T03:42:33.230704Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !BHcierreUuwCMxVqOf:matrix.org, hit start of timeline? no -2024-12-28T03:42:33.481903Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$PRR9Cvz1GKaRR9sDRrWac3PglNOfvigckaDPLcC_KCE" origin_server_ts="2024-12-27T10:04:32.899Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:33.488040Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$6oZANyY0TCQ4btosWSmzovwwZk3aQb7drYeAa4TiQP0" origin_server_ts="2024-12-27T10:00:17.966Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="XzKC431Jae5TWcq/hqoO8HQVoLxj2dfUzzJHUAYjjlw" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:33.494494Z  WARN paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:live_paginate_backwards{room_id="!ugrySPqOXlcmORZIwY:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!ugrySPqOXlcmORZIwY:matrix.org" options=MessagesOptions { from: "t13-5522308573_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!ugrySPqOXlcmORZIwY:matrix.org" sender="@aaravlu:matrix.org" event_id="$zvoxVs_cZU2v3MZy49OswxL-sBYAooFW1fqytA6CTY8" origin_server_ts="2024-12-27T09:58:55.761Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:4/dvM6WQhZ1C8XwTHkiFLhuEje1WFUaHmiq7zc1GYlE" session_id="Fb3z4bsEqlOP1zptAC4oYYcohzmmevg5saAj7NAmY/w" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ugrySPqOXlcmORZIwY:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !MzKbWjifQZZoIBHjCX:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !moVNEIUPxJZpxRHDUv:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !cGyiuCNphlCyGxDYcZ:matrix.org, hit start of timeline? no -src/sliding_sync.rs:1970:5 - can_user_send_message: false -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/verification.rs:28:13 - Received a verification state update: Unverified -2024-12-28T03:42:33.905653Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !veagCdDBjKrMsOCzrq:privacytools.io, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !iYnZafYUoXkeVPOSQh:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !nCULugmcNjxWftdWKg:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !eMbtejjAApVrUTLFyB:matrix.org, hit start of timeline? no -2024-12-28T03:42:34.335498Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$B8ou8qdmvk2Bcd7_B5fYwdGSDBQpFcad_2wr10wyMfA" origin_server_ts="2024-10-13T02:01:10.047Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:O68EcJ4rBhpomGmkPU8U8NOWbjlO0MgdOQvNoMUjKGs" session_id="LNHthkmg0Ab40t0jU5a2Mvyn9WwCMNtgCurIj4Q63aM" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.341981Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$HKYEB8IRQhDvljIjD4BnzmDL-XhHcpldMV7QhVSRa-M" origin_server_ts="2024-10-07T11:25:21.208Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:5aZTCU65HZ7j+znjd3YRvozWB3qpkq4G3ifUSGdNGQU" session_id="g+WkIWRTpGQnvcj/N9YmeK9nBcybPyvfU5L/NgI7G9o" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.348105Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$dqmlMTRXLhneeS7W_9sLKAwBI42UkBeC5Xgj-zVRv5g" origin_server_ts="2024-10-07T05:17:55.139Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=15}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/home/room_screen.rs:1956:13 - Sending a first-time backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org -src/sliding_sync.rs:504:21 - Sending fetch room members request for room !ZJEzvNtzSGkPSynJpH:matrix.org... -src/sliding_sync.rs:428:21 - Starting backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org... -src/home/room_screen.rs:1538:25 - !!! Couldn't find new event with matching ID for ANY event currently visible in the portal list -src/sliding_sync.rs:506:21 - Completed fetch room members request for room !ZJEzvNtzSGkPSynJpH:matrix.org. -2024-12-28T03:42:34.354314Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$nXntWh-5BQ4e8PGeCaFG0CWL3XuVjSAcLHRUgP8mqs4" origin_server_ts="2024-10-07T05:14:15.152Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:bL+iE4J14LiR4YgtLnRNkMQI/5gudrRlxfmmDgoiGFc" session_id="I9NEzZUsqDCthLlR1fRj/QBP01dHX6zJDWV/FbVisB8" message_index=2}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.360359Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$Zk9Ru1R9R98PBOmr8ayMsk8qES87lYIWMWYlqYxK4xk" origin_server_ts="2024-10-07T02:44:48.721Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:wZVXHZKrmt33qGsX63Av2xI/JFx1bcOS2dqIcw7uGVE" session_id="9j5UkjluGI807H9xZv67Lr5qTxLPDDACPv35jB++nnE" message_index=3}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.366431Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$Dt5Mu084sNvpfQzsZujwwVcO2Z2ZRwJ7NaZbhpgDCtQ" origin_server_ts="2024-10-06T16:31:16.129Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:bL+iE4J14LiR4YgtLnRNkMQI/5gudrRlxfmmDgoiGFc" session_id="I9NEzZUsqDCthLlR1fRj/QBP01dHX6zJDWV/FbVisB8" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.372404Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$YDiOCFNekVMKrKqKK49ERE6nU8qX8cLdYjF98sP6rcQ" origin_server_ts="2024-10-06T16:10:16.607Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:wZVXHZKrmt33qGsX63Av2xI/JFx1bcOS2dqIcw7uGVE" session_id="9j5UkjluGI807H9xZv67Lr5qTxLPDDACPv35jB++nnE" message_index=2}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.378428Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$_T1TJe5RJPFYDbcbJhYPvgf3QukLfmQJYQUnNm71YDg" origin_server_ts="2024-10-06T15:50:14.140Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:vxNidNk6RfxEtCSapuSmXnoASujj0+ivqQPXjAYaFhA" session_id="So6yjTWtj7Vum67zuy5OmEPnL8dn2jCF8pke4F8q9bc" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.384386Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$H1zMdOPvgNchychNZI2QZsUEVTnjTU88WrN-ZfKbinU" origin_server_ts="2024-10-06T15:40:10.602Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:vxNidNk6RfxEtCSapuSmXnoASujj0+ivqQPXjAYaFhA" session_id="So6yjTWtj7Vum67zuy5OmEPnL8dn2jCF8pke4F8q9bc" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.384723Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) -2024-12-28T03:42:34.390566Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$2mNLdYjHNdy7lkw4QBLE1ix1_xhcU0A8blvRGqx9XbM" origin_server_ts="2024-10-06T14:23:53.072Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=14}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.396267Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -2024-12-28T03:42:34.396613Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$1QTfEjmtFmntUJS4D6TKPSaaLi333Bpgaf4g7Cp6980" origin_server_ts="2024-10-06T14:18:11.001Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=13}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.402829Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$ioJlXq9bLXo9MGFyRcmYwGYuA_jsAF6GXReTiPONWiU" origin_server_ts="2024-10-05T07:14:20.519Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=8}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.408875Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$oW9NChORvjn5XgG-hmqAFC49yfdK4uDndp_Scrj8474" origin_server_ts="2024-10-05T07:11:57.516Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=6}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.415097Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$xepl_6XCcKa2nYtlVoj0VU5-bgjAhxPL3RWXTjqvDfk" origin_server_ts="2024-10-05T06:52:50.493Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=5}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.421147Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$RMZTWP3_fzm48tfz8rsJRw4eaoIaBjLwF1HkQOoqT5s" origin_server_ts="2024-10-05T06:52:47.431Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=4}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.427130Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$JV8HpscovGnryGyITdXEj2foX9lEnlVh4gutpZC9rsk" origin_server_ts="2024-10-05T03:38:19.043Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=3}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.433092Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$pat6_cJf_hZrkQ2lGlEolUE4XiLTyog699TmkMQCh_c" origin_server_ts="2024-10-05T03:38:01.002Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=2}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.439393Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$k4xTVH0vXSyFEXgOLatv3NEHXlQFmBjoZe-jCMl9ezg" origin_server_ts="2024-10-04T07:04:56.065Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ZpyriYGpLc4rpaz/remahZc502DFJNxtLSMI36nL/z0" session_id="+e5iVj4/nzQ/tDxQ8+whChxs/mvPilxuzCTMKX7zOkU" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.445792Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$xbqml9pSNjdkbxaozgV2QTovYUJJI4Nk8UU5iB3j1JM" origin_server_ts="2024-10-04T06:54:20.969Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:wZVXHZKrmt33qGsX63Av2xI/JFx1bcOS2dqIcw7uGVE" session_id="9j5UkjluGI807H9xZv67Lr5qTxLPDDACPv35jB++nnE" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.451994Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$CUF38Uqa9EdpsDT_cpnAOBkMa89hh8z4HBZgzSfNd-k" origin_server_ts="2024-10-04T06:53:57.205Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.458035Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$u4gRscyKN18OCWzNBOhe_fgvieTNgYrJHLAoTI9lmTU" origin_server_ts="2024-10-04T06:42:38.737Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=12}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.464106Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$VqHEMH5zCmX2zmqDiFl_U_iZCizvo6p12IgiOkWDRF4" origin_server_ts="2024-10-04T06:42:37.786Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=11}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.470146Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$uVJtpquur5Yd8-IAKkg95tuReBc-ke08zWYFsVV8cX0" origin_server_ts="2024-10-04T06:36:42.179Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=10}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.476169Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$cBykXBMNT2ywKGV40gV08hNTz_aRpQbkdwiSzbqkE5A" origin_server_ts="2024-10-04T06:36:41.400Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=9}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.482157Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$iu4ZIidhssTAsApg85_WOa9iGqi0D3Xdv-1HJJ0djJY" origin_server_ts="2024-10-04T06:36:21.448Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=8}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.488123Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$LK8zlBqCI791TwBpASeC7gHzW3XKuw9F_SQtbWi2yKc" origin_server_ts="2024-10-04T06:36:20.657Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=7}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.494133Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$ZAMtMsk21jAiUPGiHiQtO4E3nXdCbV2YT_LXch1k4Vo" origin_server_ts="2024-10-04T06:29:44.067Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=6}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.500098Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$mN6Mnwceuw6OFj5mEal-CSTcFxV08RWKaXg6zJOqMRE" origin_server_ts="2024-10-04T06:23:28.619Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=5}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.506173Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$jXfTSVljnUKx_4kGPo2EhwxAD7dss8-liZwdI-Zv3T8" origin_server_ts="2024-10-04T06:17:13.352Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=4}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.512170Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$O7DjgqiVfIvjiZXT5fQsaUN4xWJSaJH3GVKuMHeUvh4" origin_server_ts="2024-10-04T06:09:47.160Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:/HOkshobl/C176BIOD0LyGXi9MPLDIdzA4bLaeU9zi4" session_id="6FGtths0DKvCYXTMBoZafAKPbOPznbQ9uMVgtHqLgME" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.518110Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$gTS5Xm3WhDNvBPZw3EfdwGd7_4MMtZG8am88e7l5p0A" origin_server_ts="2024-10-04T06:08:38.495Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=3}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.524105Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$H0Ns4HQfQOv3Rbi3iHKA68qU8B6w4WYOx-g2iD9g-1Y" origin_server_ts="2024-10-01T16:30:48.817Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=2}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.530059Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@zasongguo:matrix.org" event_id="$ufd87q_PCEFF84oo_5avwmVEr3BboPjjB8o5Ov-tB9Y" origin_server_ts="2024-10-01T16:30:27.950Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:wZVXHZKrmt33qGsX63Av2xI/JFx1bcOS2dqIcw7uGVE" session_id="9j5UkjluGI807H9xZv67Lr5qTxLPDDACPv35jB++nnE" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.536142Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$5holrQjj9JRrh_Dy2ACDOQF4Me3u9Ro2dPdjiQKivB8" origin_server_ts="2024-10-01T16:26:11.286Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=1}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -2024-12-28T03:42:34.542615Z  WARN paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:live_paginate_backwards{room_id="!vVLSRWycKVfdPUWXxI:matrix.org"}:run_backwards{batch_size=50}:messages{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" options=MessagesOptions { from: "t51-5380163583_757284974_99249691_3325163941_3646642638_263197058_1428905101_11062822350_0_406104", dir: Backward, limit: 50 }}:decrypt_room_event{room_id="!vVLSRWycKVfdPUWXxI:matrix.org" sender="@demolemon:matrix.org" event_id="$qVwvW8yWNADlVlZV40Pif-lH1-A2ClgGlNyv2Ua8GlQ" origin_server_ts="2024-10-01T16:26:09.327Z" algorithm="m.megolm.v1.aes-sha2" sender_key="curve25519:ih7detY/3bYS47o8I7WTCXo+jpXOMCLteVG5xdvwcC8" session_id="BAx2e2OUE6pKF5T8RiCyBJYJB9V3yuH4wZmYfXeQvzI" message_index=0}: matrix_sdk_crypto::machine: Failed to decrypt a room event: Can't find the room key to decrypt the event, withheld code: None -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !vVLSRWycKVfdPUWXxI:matrix.org, hit start of timeline? no -src/sliding_sync.rs:440:29 - Completed backwards pagination request for room !ZJEzvNtzSGkPSynJpH:matrix.org, hit start of timeline? yes -2024-12-28T03:42:34.855559Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) -2024-12-28T03:42:40.207278Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/sliding_sync.rs:1970:5 - can_user_send_message: true -src/sliding_sync.rs:1532:13 - Received a room list loading state update: Loaded { maximum_number_of_rooms: Some(11) } -src/home/room_screen.rs:2415:17 - Found matching event ID $nMuQRoBJmqZxkAQNXmbeLONUoJPh44UTzIm0USOsItU at index 15 in new items list, corresponding to current item index 15 at pos offset -11.5 -src/home/rooms_list.rs:351:17 - RoomsList: processed 3 updates to the list of all rooms -2024-12-28T03:42:40.691321Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) -src/sliding_sync.rs:772:37 - Sent read receipt to room !ZJEzvNtzSGkPSynJpH:matrix.org for event $Ft_KnylNbt6S4V_7eeKdlIlKMU3gwo6742EuwXzvdxM -2024-12-28T03:42:42.339219Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -src/sliding_sync.rs:1970:5 - can_user_send_message: false -2024-12-28T03:42:42.799320Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) -2024-12-28T03:42:42.808942Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/home/room_screen.rs:2415:17 - Found matching event ID $pQ2gbI6-6XcIGA0UhGTy4xVmVFFxJgdZSeffjEVZ6mY at index 17 in new items list, corresponding to current item index 17 at pos offset -3.1940507207309565 -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-28T03:42:43.311545Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) -2024-12-28T03:42:44.930512Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/sliding_sync.rs:1970:5 - can_user_send_message: true -src/home/room_screen.rs:2415:17 - Found matching event ID $pQ2gbI6-6XcIGA0UhGTy4xVmVFFxJgdZSeffjEVZ6mY at index 17 in new items list, corresponding to current item index 17 at pos offset -11.5 -src/home/rooms_list.rs:351:17 - RoomsList: processed 2 updates to the list of all rooms -2024-12-28T03:42:45.405112Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) -src/sliding_sync.rs:772:37 - Sent read receipt to room !ZJEzvNtzSGkPSynJpH:matrix.org for event $w3sJPn7Q7bNLe_GLkiWJJjuyFimflRS5qtjbtLqWjyw -2024-12-28T03:42:45.853549Z  WARN matrix_sdk_crypto::backups: Trying to backup room keys but no backup key was found -src/home/rooms_list.rs:351:17 - RoomsList: processed 1 updates to the list of all rooms -2024-12-28T03:42:46.336070Z  WARN matrix_sdk::encryption: Error when sending out an outgoing E2EE request error=Http(Api(Server(ClientApi(Error { status_code: 400, body: Standard { kind: Unknown, message: "One time key signed_curve25519:AAAAAAAAAA4 already exists. Old key: {\"key\":\"qTqoGfcMWx3EOr5mdzCHBEMGMxgI71u1unjhutP8k2U\",\"signatures\":{\"@demolemon:matrix.org\":{\"ed25519:YOQVSNYACA\":\"E6H+gI8JKXgaCZUEGx26fuhZau+cDzS2p0PKZCBN3EasNCeBUxs7Ht7VzMzaR72xHQ4eJ9UAjb6kGsqBhFxeDQ\"}}}; new key: {'key': 'y50TVy+53SPc1pJrge2hn5ttMnx6h2FMObIzU2LECFM', 'signatures': {'@demolemon:matrix.org': {'ed25519:YOQVSNYACA': '9RTzerH5FGhYD/BxN7Fj04m1uXBtFhXW08hwyvWrMbmL6neVgC82ORpDhn+XJXmKeytnopUwbi5oFaVib7MRAg'}}}" } })))) diff --git a/Cargo.toml b/Cargo.toml index 3fab461..b0fe90e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -216,5 +216,3 @@ too_many_arguments = "allow" blocks_in_conditions = "allow" used_underscore_binding = "allow" module_name_repetitions = "allow" -[profile.dev] -debug = 0 From 0f9db031bd8d6348a1203bfff0c9cd075fba5f04 Mon Sep 17 00:00:00 2001 From: ZhangHanDong Date: Sat, 28 Dec 2024 23:28:01 +0800 Subject: [PATCH 21/27] Refactor Verificatiion Badge and tooltip and Fixed Dock DrawDepth Bug --- src/home/light_themed_dock.rs | 7 +- src/home/spaces_dock.rs | 159 +++++++++++---------------- src/shared/color_tooltip.rs | 183 +++++++++++++++++++++++++++++++ src/shared/mod.rs | 2 + src/shared/verification_badge.rs | 117 +++++++++++++++----- 5 files changed, 342 insertions(+), 126 deletions(-) create mode 100644 src/shared/color_tooltip.rs diff --git a/src/home/light_themed_dock.rs b/src/home/light_themed_dock.rs index fd324cb..85e7ed9 100644 --- a/src/home/light_themed_dock.rs +++ b/src/home/light_themed_dock.rs @@ -5,7 +5,7 @@ live_design! { use link::shaders::*; use link::widgets::*; - use crate::shared::styles::*; + use crate::shared::styles::*; pub Splitter = { draw_splitter: { @@ -90,7 +90,7 @@ live_design! { } } } - + pub TabCloseButton = { // TODO: NEEDS FOCUS STATE height: 10.0, width: 10.0, @@ -260,7 +260,6 @@ live_design! { flow: Down, round_corner: { - draw_depth: 20.0 border_radius: 20. fn pixel(self) -> vec4 { let pos = vec2( @@ -295,4 +294,4 @@ live_design! { tab_bar: {} splitter: {} } -} \ No newline at end of file +} diff --git a/src/home/spaces_dock.rs b/src/home/spaces_dock.rs index 9fcda6b..9d349ab 100644 --- a/src/home/spaces_dock.rs +++ b/src/home/spaces_dock.rs @@ -1,9 +1,10 @@ use makepad_widgets::*; -use matrix_sdk::encryption::VerificationState; use crate::shared::adaptive_view::DisplayContext; -use crate::sliding_sync::get_client; +use crate::shared::color_tooltip::*; +use crate::shared::verification_badge::{VerificationBadge, VerificationText}; use crate::verification::VerificationStateAction; +use matrix_sdk::encryption::VerificationState; live_design! { use link::theme::*; @@ -14,6 +15,7 @@ live_design! { use crate::shared::helpers::*; use crate::shared::adaptive_view::AdaptiveView; use crate::shared::verification_badge::*; + use crate::shared::color_tooltip::*; ICON_HOME = dep("crate://self/resources/icons/home.svg") ICON_SETTINGS = dep("crate://self/resources/icons/settings.svg") @@ -57,20 +59,14 @@ live_design! { text: "U" } } + { align: { x: 1.0, y: 0.0 } + verification_badge = {} + } - verification_icon = { - flow: Overlay - align:{ x: 0.5, y: 0.5 } - width: 31, height: 31 + profile_tooltip = {} - icon_yes = {} - icon_no = {} - icon_unk = {} - } - } - verification_notice = { } } Separator = { @@ -175,81 +171,64 @@ live_design! { } } } -struct VerificationNoticeText { - yes: &'static str, - no: &'static str, - unk: &'static str, -} -impl Default for VerificationNoticeText{ - fn default() -> Self { - Self { - yes: "This device is fully verified.", - no: "This device is unverified. To view your encrypted message history, please verify it from another client.", - unk: "Verification state is unknown.", - } - } -} - -#[derive(Live, Widget)] +#[derive(Live, LiveHook, Widget)] pub struct Profile { #[deref] view: View, - #[rust(VerificationState::Unknown)] - verification_state: VerificationState, - #[rust] - verification_notice_text: VerificationNoticeText, -} - -impl Profile { - fn set_verification_icon_visibility(&self) { - let (yes_visible, no_visible, unk_visible) = match self.verification_state { - VerificationState::Unknown => (false, false, true), - VerificationState::Unverified => (false, true, false), - VerificationState::Verified => (true, false, false), - }; - - self.view(id!(icon_yes)).set_visible(yes_visible); - self.view(id!(icon_no)).set_visible(no_visible); - self.view(id!(icon_unk)).set_visible(unk_visible); - } } impl Widget for Profile { fn handle_event(&mut self, cx: &mut Cx, event: &Event, scope: &mut Scope) { + let mut color: Vec4 = vec4(0.2, 0.2, 0.2, 1.0); // Default Grey Color + let profile_rect = { + let view = self.view(id!(text_view)); + view.area().rect(cx) + }; // view borrow end + if let Event::MouseMove(e) = event { - let mut verification_notice = self.tooltip(id!(verification_notice)); - - if self.view(id!(verification_icon)).area().rect(cx).contains(e.abs) { - let text = match self.verification_state { - VerificationState::Unknown => self.verification_notice_text.unk, - VerificationState::Unverified => self.verification_notice_text.no, - VerificationState::Verified => self.verification_notice_text.yes - }; - - //Determine if it's a desktop or mobile layout, - //then we set the relative position so that the tooltip looks like following the cursor. - if cx.get_global::().is_desktop() { - verification_notice.show_with_options(cx, DVec2 {x: 65., y: 23.}, text); - } - else { - verification_notice.apply_over(cx, live!{ - content: { - - // Via setting suitable align & padding, - // we can simulate a relative position to make the tootip follow widget `Profile (U)`, - // this is not a perfect solution. - // TODO: Find a way to follow widget `Profile (U)` more precisely. - align: { x: 0.43, y: 1. } - padding: { left: 30., bottom: 31. } + let (is_mouse_over_icons, verification_text, tooltip_pos) = { + if let Some(badge) = self + .widget(id!(verification_badge)) + .borrow_mut::() + { + let icons_rect = badge.get_icons_rect(cx); + let is_over = icons_rect.contains(e.abs); + let text = + VerificationText::from_state(badge.verification_state).get_text(); + color = match badge.verification_state { + VerificationState::Verified => vec4(0.0, 0.75, 0.0, 1.0), // Green + VerificationState::Unverified => vec4(0.75, 0.0, 0.0, 1.0), // Red + VerificationState::Unknown => vec4(0.2, 0.2, 0.2, 1.0), // Grey + }; + + let tooltip_pos = if cx.get_global::().is_desktop() { + DVec2 { + x: icons_rect.pos.x + icons_rect.size.x + 1., + y: icons_rect.pos.y - 10., + } + } else { + DVec2 { + x: profile_rect.pos.x, + y: profile_rect.pos.y - 10., } - }); - verification_notice.show_with_options(cx, DVec2 {x: 0., y: 0.}, text); + }; + (is_over, text.to_string(), tooltip_pos) + } else { + let tooltip_pos = DVec2 { x: 0., y: 0. }; + (false, String::new(), tooltip_pos) + } + }; // badge borrow end + + if let Some(mut tooltip) = self + .widget(id!(profile_tooltip)) + .borrow_mut::() + { + if is_mouse_over_icons { + tooltip.show_with_options(cx, tooltip_pos, &verification_text, color); + } else { + tooltip.hide(cx); } - } - //Hide it if cursor is not hovering. - else { - verification_notice.hide(cx); } } @@ -263,26 +242,18 @@ impl Widget for Profile { } impl MatchEvent for Profile { - fn handle_action(&mut self, cx: &mut Cx, action:&Action) { + fn handle_action(&mut self, cx: &mut Cx, action: &Action) { if let Some(VerificationStateAction::Update(state)) = action.downcast_ref() { - if self.verification_state != *state { - self.verification_state = *state; - - self.set_verification_icon_visibility(); - self.redraw(cx); + if let Some(mut badge) = self + .widget(id!(verification_badge)) + .borrow_mut::() + { + if badge.verification_state != *state { + badge.verification_state = *state; + badge.update_icon_visibility(); + badge.redraw(cx); + } } } } } - -impl LiveHook for Profile { - fn after_new_from_doc(&mut self, cx:&mut Cx) { - if let Some(client) = get_client() { - let current_verification_state = client.encryption().verification_state().get(); - self.verification_state = current_verification_state; - - self.set_verification_icon_visibility(); - self.redraw(cx); - } - } -} diff --git a/src/shared/color_tooltip.rs b/src/shared/color_tooltip.rs new file mode 100644 index 0000000..127b857 --- /dev/null +++ b/src/shared/color_tooltip.rs @@ -0,0 +1,183 @@ +use makepad_widgets::*; + +live_design! { + use link::theme::*; + use link::shaders::*; + use link::widgets::*; + use crate::shared::styles::*; + + pub ColorTooltip = {{ColorTooltip}} { + width: Fill, + height: Fill, + visible: false + flow: Overlay + align: {x: 0.0, y: 0.0} + + draw_bg: { + fn pixel(self) -> vec4 { + return vec4(0., 0., 0., 0.0) + } + } + + content : { + width: Fit + height: Fit + + padding: 2.0 + + tooltip_bg = { + width: Fit, + height: Fit, + padding: 7, + + draw_bg: { + // color: #ff0000aa, + color: #fff, + border_width: 1.5, + border_color: #fff, + radius: 3.0 + } + + tooltip_label =