diff --git a/src/DMAPI/tgs/v4/api.dm b/src/DMAPI/tgs/v4/api.dm
index 2f05c38633..b9a75c4abb 100644
--- a/src/DMAPI/tgs/v4/api.dm
+++ b/src/DMAPI/tgs/v4/api.dm
@@ -263,7 +263,12 @@
for(var/I in channels)
var/datum/tgs_chat_channel/channel = I
ids += channel.id
+
message = UpgradeDeprecatedChatMessage(message)
+
+ if (!length(channels))
+ return
+
message = list("message" = message.text, "channelIds" = ids)
if(intercepted_message_queue)
intercepted_message_queue += list(message)
@@ -276,7 +281,12 @@
var/datum/tgs_chat_channel/channel = I
if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only)))
channels += channel.id
+
message = UpgradeDeprecatedChatMessage(message)
+
+ if (!length(channels))
+ return
+
message = list("message" = message.text, "channelIds" = channels)
if(intercepted_message_queue)
intercepted_message_queue += list(message)
diff --git a/src/DMAPI/tgs/v5/api.dm b/src/DMAPI/tgs/v5/api.dm
index 25bffb7850..926ea10a8f 100644
--- a/src/DMAPI/tgs/v5/api.dm
+++ b/src/DMAPI/tgs/v5/api.dm
@@ -166,6 +166,10 @@
ids += channel.id
message = UpgradeDeprecatedChatMessage(message)
+
+ if (!length(channels))
+ return
+
message = message._interop_serialize()
message[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = ids
if(intercepted_message_queue)
@@ -181,6 +185,10 @@
channels += channel.id
message = UpgradeDeprecatedChatMessage(message)
+
+ if (!length(channels))
+ return
+
message = message._interop_serialize()
message[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channels
if(intercepted_message_queue)
diff --git a/src/Tgstation.Server.Host/Components/Chat/ChatManager.cs b/src/Tgstation.Server.Host/Components/Chat/ChatManager.cs
index d9bb4fa5f7..13196b3f57 100644
--- a/src/Tgstation.Server.Host/Components/Chat/ChatManager.cs
+++ b/src/Tgstation.Server.Host/Components/Chat/ChatManager.cs
@@ -983,6 +983,10 @@ namespace Tgstation.Server.Host.Components.Chat
/// A representing the running operation.
Task SendMessage(IEnumerable channelIds, Message replyTo, MessageContent message, CancellationToken cancellationToken)
{
+ channelIds = channelIds.ToList();
+ if (!channelIds.Any())
+ return Task.CompletedTask;
+
logger.LogTrace(
"Chat send \"{message}\"{embed} to channels: {channelIdsCommaSeperated}",
message.Text,