From 952e89343ae5b8ec2fff3cce6274f7f16e568cac Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Sat, 29 Nov 2025 17:26:09 +0000 Subject: [PATCH] Don't broadcast without clients --- sync-server/src/app_state/websocket/broadcasts.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sync-server/src/app_state/websocket/broadcasts.rs b/sync-server/src/app_state/websocket/broadcasts.rs index b8200d91..60ae0219 100644 --- a/sync-server/src/app_state/websocket/broadcasts.rs +++ b/sync-server/src/app_state/websocket/broadcasts.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, sync::Arc}; use anyhow::Context; -use log::warn; +use log::{debug, warn}; use tokio::sync::{Mutex, broadcast}; use super::models::WebSocketServerMessageWithOrigin; @@ -39,7 +39,12 @@ impl Broadcasts { vault: VaultId, document: WebSocketServerMessageWithOrigin, ) { - let tx = self.get_or_create(vault).await; + let tx = self.get_or_create(vault.clone()).await; + + if tx.receiver_count() == 0 { + debug!("Skipping broadcast, no clients connected for vault `{vault}`"); + return; + } let result = tx .send(document)