--- Client/Assets/Scripts/Stages/QuitAct.cs (reviewed baseline) +++ Client/Assets/Scripts/Stages/QuitAct.cs @@ -34,6 +34,9 @@ public override async Task StartAsync() { +#if UNITY_EDITOR && !SERVICE_HOST + if(game.PlayerDataStorage.PlayerKVGameplayLoop.Enabled) _=game.PlayerDataStorage.PlayerKVGameplayLoop.CloseAsync(); +#endif if(userService is PlayFabUserService closingKVUser) _=closingKVUser.CloseKVForValidationAsync(); // Invalidate identity before any await can allow old login/HTTP callbacks to resume. if (QuitStage.Logout) @@ -51,6 +54,10 @@ catch (System.Exception ex) { Debug.LogException(ex); } // Observation is bounded; the process registry still owns any unfinished close. +#if UNITY_EDITOR && !SERVICE_HOST + if(game.PlayerDataStorage.PlayerKVGameplayLoop.Enabled) await PlayerDataStorage.PlayerKVShutdownRegistry.Process.ObserveAsync(5000); + else +#endif if(userService is PlayFabUserService kvUser) await kvUser.ObserveKVQuitAsync(); adsService.Release();