diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs index 11cf5bb9d7..71d95b97bd 100644 --- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs +++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs @@ -175,19 +175,19 @@ namespace MediaBrowser.Server.Implementations.Session public async Task ReportSessionEnded(Guid sessionId) { - var session = GetSession(sessionId); + await _sessionLock.WaitAsync(CancellationToken.None).ConfigureAwait(false); - if (session == null) + try { - throw new ArgumentException("Session not found"); - } + var session = GetSession(sessionId); - var key = GetSessionKey(session.Client, session.ApplicationVersion, session.DeviceId); + if (session == null) + { + throw new ArgumentException("Session not found"); + } - await _sessionLock.WaitAsync(CancellationToken.None).ConfigureAwait(false); + var key = GetSessionKey(session.Client, session.ApplicationVersion, session.DeviceId); - try - { SessionInfo removed; if (_activeConnections.TryRemove(key, out removed))