diff --git a/Content.Server/Administration/Managers/AdminManager.cs b/Content.Server/Administration/Managers/AdminManager.cs index 4e271009f7..2e2ebd31ba 100644 --- a/Content.Server/Administration/Managers/AdminManager.cs +++ b/Content.Server/Administration/Managers/AdminManager.cs @@ -408,6 +408,17 @@ namespace Content.Server.Administration.Managers } private async Task<(AdminData dat, int? rankId, bool specialLogin)?> LoadAdminData(ICommonSession session) + { + var result = await LoadAdminDataCore(session); + + // Make sure admin didn't disconnect while data was loading. + if (session.Status != SessionStatus.InGame) + return null; + + return result; + } + + private async Task<(AdminData dat, int? rankId, bool specialLogin)?> LoadAdminDataCore(ICommonSession session) { var promoteHost = IsLocal(session) && _cfg.GetCVar(CCVars.ConsoleLoginLocal) || _promotedPlayers.Contains(session.UserId)