From f8cf529937aa671f68ebc7b10be00041be8ea2e2 Mon Sep 17 00:00:00 2001 From: Jordan Dominion Date: Sun, 9 Feb 2025 15:26:24 -0500 Subject: [PATCH] Fix errored bridge events not sending their completion events --- .../Interop/Bridge/BridgeParameters.cs | 2 +- .../Components/Session/SessionController.cs | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Tgstation.Server.Host/Components/Interop/Bridge/BridgeParameters.cs b/src/Tgstation.Server.Host/Components/Interop/Bridge/BridgeParameters.cs index 228c467768..1f0c600890 100644 --- a/src/Tgstation.Server.Host/Components/Interop/Bridge/BridgeParameters.cs +++ b/src/Tgstation.Server.Host/Components/Interop/Bridge/BridgeParameters.cs @@ -52,7 +52,7 @@ namespace Tgstation.Server.Host.Components.Interop.Bridge public ushort? TopicPort { get; set; } /// - /// The being triggered. + /// The being triggered. /// public CustomEventInvocation? EventInvocation { get; set; } diff --git a/src/Tgstation.Server.Host/Components/Session/SessionController.cs b/src/Tgstation.Server.Host/Components/Session/SessionController.cs index 53f8086f07..ac6d3dd6a3 100644 --- a/src/Tgstation.Server.Host/Components/Session/SessionController.cs +++ b/src/Tgstation.Server.Host/Components/Session/SessionController.cs @@ -1171,14 +1171,26 @@ namespace Tgstation.Server.Host.Components.Session { try { - await eventTask.Value; + Exception? exception; + try + { + await eventTask.Value; + exception = null; + } + catch (Exception ex) + { + exception = ex; + } if (notifyCompletion.Value) await SendCommand( new TopicParameters(eventId), cancellationToken); - else + else if (exception == null) Logger.LogTrace("Finished custom event {eventId}, not sending notification.", eventId); + + if (exception != null) + throw exception; } catch (OperationCanceledException ex) {