diff --git a/src/Tgstation.Server.Host/Components/Session/SessionController.cs b/src/Tgstation.Server.Host/Components/Session/SessionController.cs index 452c4fefec..0f76b5993f 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionController.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionController.cs @@ -316,9 +316,20 @@ namespace Tgstation.Server.Host.Components.Session if (parameters.ChatMessage.Text == null) return Error("Missing message field in chatMessage!"); + var anyFailed = false; + var parsedChannels = parameters.ChatMessage.ChannelIds.Select( + channelString => + { + anyFailed |= !UInt64.TryParse(channelString, out var channelId); + return channelId; + }); + + if (anyFailed) + return Error("Failed to parse channelIds as U64!"); + chat.QueueMessage( parameters.ChatMessage, - parameters.ChatMessage.ChannelIds.Select(UInt64.Parse)); + parsedChannels); break; case BridgeCommandType.Prime: var oldPrimeTcs = primeTcs;