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;
+ }
}
///