Description

The VoipListenerSynthComponent created by the voice chat will try to be released by the GC after the server travel because it has previous levels and references, but the referenced level does not already exist.

Steps to Reproduce

1. Packaging the ShooterGame project.

2. Player1 selects the map "Sanctuary" and starts the session as a host (Host->FREE FOR ALL)

3. Players2 and Players3 search the server and join the session as guests (JOIN->SERVER)

4. After matching, Player2 presses "V Key" to output voice and start press talk. At the same time, Player1 executes the console command "ServerTravel Highrise".

Then, a crash occurs during server travel.

Callstack
Ensure condition failed: !ActorComponent->IsRegistered() || ActorComponent->GetScene() != this [File:C:Release-4.27/Engine/Source/Runtime/Renderer/Private/RendererScene.cpp] [Line: 3344] 
Component Name: AudioComponent /Engine/Transient.VoipListenerSynthComponent_2147482107:AudioComponent_2147482106 World Name: World None.None Component Asset: /Engine/Transient.VoipListenerSynthComponent_2147482107:Synth
LogOutputDevice: Error: Ensure condition failed: !ActorComponent->IsRegistered() || ActorComponent->GetScene() != this [File:C:/Release-4.27/Engine/Source/Runtime/Renderer/Private/RendererScene.cpp] [Line: 3344] 
Component Name: AudioComponent /Engine/Transient.VoipListenerSynthComponent_2147482107:AudioComponent_2147482106 World Name: World None.None Component Asset: /Engine/Transient.VoipListenerSynthComponent_2147482107:Synth

ShooterGame-Win64-Debug.exe!FScene::Release() Line 3340 C++
ShooterGame-Win64-Debug.exe!UWorld::FinishDestroy() Line 960 C++
ShooterGame-Win64-Debug.exe!UObject::ConditionalFinishDestroy() Line 1030 C++
ShooterGame-Win64-Debug.exe!IncrementalDestroyGarbage(bool bUseTimeLimit, float TimeLimit) Line 1587 C++
ShooterGame-Win64-Debug.exe!IncrementalPurgeGarbage(bool bUseTimeLimit, float TimeLimit) Line 1511 C++
ShooterGame-Win64-Debug.exe!CollectGarbageInternal(EObjectFlags KeepFlags, bool bPerformFullPurge) Line 2074 C++
ShooterGame-Win64-Debug.exe!CollectGarbage(EObjectFlags KeepFlags, bool bPerformFullPurge) Line 2170 C++
ShooterGame-Win64-Debug.exe!FSeamlessTravelHandler::Tick() Line 6629 C++
ShooterGame-Win64-Debug.exe!UEngine::TickWorldTravel(FWorldContext & Context, float DeltaSeconds) Line 12606 C++
ShooterGame-Win64-Debug.exe!UGameEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1813 C++
ShooterGame-Win64-Debug.exe!FEngineLoop::Tick() Line 4921 C++
ShooterGame-Win64-Debug.exe!EngineTick() Line 63 C++
ShooterGame-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine) Line 181 C++
ShooterGame-Win64-Debug.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 262 C++
ShooterGame-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 320 C++
[Inline Frame] ShooterGame-Win64-Debug.exe!invoke_main() Line 102 C++
ShooterGame-Win64-Debug.exe!__scrt_common_main_seh() Line 288 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-146893 in the post.

13
Login to Vote

Won't Fix
ComponentUE - Online
Affects Versions4.27
Target Fix5.2
CreatedMar 23, 2022
ResolvedJan 19, 2023
UpdatedJan 23, 2023