From 1a9331917aa92f537a5208cc13c2952cd265d5c4 Mon Sep 17 00:00:00 2001 From: James Pace Date: Mon, 17 Feb 2025 19:59:39 -0500 Subject: [PATCH] Gracefully handle send errors. --- src/listener.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/listener.rs b/src/listener.rs index 47e9783..32bd451 100644 --- a/src/listener.rs +++ b/src/listener.rs @@ -71,11 +71,20 @@ impl MatrixListener { let rooms = rooms_clone.read().await.clone(); for room in rooms { - room.send( - matrix_sdk::ruma::events::room::message::RoomMessageEventContent::new(msg.clone()), - ) - .await - .context("Failed to send message to room.")?; + let send_response = room + .send( + matrix_sdk::ruma::events::room::message::RoomMessageEventContent::new( + msg.clone(), + ), + ) + .await; + if send_response.is_err() { + log::error!( + "Error sending to room {}. Error \n: {:?}", + room.room_id(), + send_response + ); + } } Ok(()) @@ -113,6 +122,7 @@ impl MatrixListener { .await .context("Failed on initial sync.")? .next_batch; + self.client.add_event_handler(on_room_message); // Spawn a task for the rest of the syncs. let spawn_client = self.client.clone();