diff --git a/src/Tgstation.Server.Host/Components/Watchdog/Watchdog.cs b/src/Tgstation.Server.Host/Components/Watchdog/Watchdog.cs index 4a91fc57e4..0aa84f2601 100644 --- a/src/Tgstation.Server.Host/Components/Watchdog/Watchdog.cs +++ b/src/Tgstation.Server.Host/Components/Watchdog/Watchdog.cs @@ -996,20 +996,28 @@ namespace Tgstation.Server.Host.Components.Watchdog /// public async Task StopAsync(CancellationToken cancellationToken) { - if (releaseServers && Running) + try { - await StopMonitor().ConfigureAwait(false); - - var reattachInformation = new WatchdogReattachInformation + if (releaseServers && Running) { - AlphaIsActive = AlphaIsActive - }; - reattachInformation.Alpha = alphaServer?.Release(); - reattachInformation.Bravo = bravoServer?.Release(); - await reattachInfoHandler.Save(reattachInformation, cancellationToken).ConfigureAwait(false); - } + await StopMonitor().ConfigureAwait(false); - await Terminate(false, cancellationToken).ConfigureAwait(false); + var reattachInformation = new WatchdogReattachInformation + { + AlphaIsActive = AlphaIsActive + }; + reattachInformation.Alpha = alphaServer?.Release(); + reattachInformation.Bravo = bravoServer?.Release(); + await reattachInfoHandler.Save(reattachInformation, cancellationToken).ConfigureAwait(false); + } + + await Terminate(false, cancellationToken).ConfigureAwait(false); + } + catch + { + releaseServers = false; + throw; + } } ///