diff --git a/src/service/sending/mod.rs b/src/service/sending/mod.rs index b670b54fd009aee8aefce126c1920633b755ca59..fb9c34cd5289a27aa5178efa400ae5ba2c314680 100644 --- a/src/service/sending/mod.rs +++ b/src/service/sending/mod.rs @@ -350,7 +350,9 @@ async fn handler(&self) -> Result<()> { vec![(event, key)], &mut current_transaction_status, ) { - futures.push(handle_events(outgoing_kind, events)); + if !events.is_empty() { + futures.push(handle_events(outgoing_kind, events)); + } } } } @@ -598,6 +600,7 @@ pub fn select_edus_receipts( async fn handle_events( kind: OutgoingKind, events: Vec<SendingEventType>, ) -> Result<OutgoingKind, (OutgoingKind, Error)> { + debug_assert!(!events.is_empty(), "sending empty transaction"); match kind { OutgoingKind::Appservice(ref id) => handle_events_kind_appservice(&kind, id, events).await, OutgoingKind::Push(ref userid, ref pushkey) => handle_events_kind_push(&kind, userid, pushkey, events).await, @@ -638,6 +641,7 @@ async fn handle_events_kind_appservice( let permit = services().sending.maximum_requests.acquire().await; + debug_assert!(!pdu_jsons.is_empty(), "sending empty transaction"); let response = match appservice::send_request( services() .appservice @@ -792,6 +796,7 @@ async fn handle_events_kind_normal( let permit = services().sending.maximum_requests.acquire().await; let client = &services().globals.client.sender; + debug_assert!(pdu_jsons.len() + edu_jsons.len() > 0, "sending empty transaction"); let response = send::send_request( client, dest,