This issue is regression because it doesn't reproduce 4.18.3.

Default level is just the level to move.

Demorec level runs demorec command with beginplay and has one replicated variable.

UEditorEngine::EndPlayMap() Crash with module. 4.18 doesn't reach this module, but it reaches 4.19 and 4.20.

UE_LOG(LogPlayLevel, Error, TEXT("No PIE world was found when attempting to gather references after GC."));

Perhaps 4.18 retrieves the level object in the GC, but it doesn't seem to be collected in 4.19 and 4.20. And pass this condition.

if( Object->GetOutermost()->HasAnyPackageFlags(PKG_PlayInEditor))


Steps to Reproduce
  1. Open attach project.
  2. PIE.
  3. Input '1' key with default level.
  4. Crash when ending PIE.

In Step 3, the level moves by 'open demo?listen' command.

At the destination level, execute 'demorec' command with BeginPlay.




> UE4Editor-ApplicationCore.dll!FWindowsErrorOutputDevice::Serialize(const wchar_t * Msg, ELogVerbosity::Type Verbosity, const FName & Category) Line 31 C++
UE4Editor-Core.dll!FOutputDevice::LogfImpl(const wchar_t * Fmt, ...) Line 70 C++
UE4Editor-Core.dll!FDebug::AssertFailed(const char * Expr, const char * File, int Line, const wchar_t * Format, ...) Line 419 C++
UE4Editor-Core.dll!FMsg::LogfImpl(const char * File, int Line, const FName & Category, ELogVerbosity::Type Verbosity, const wchar_t * Fmt, ...) Line 64 C++
UE4Editor-MessageLog.dll!FMessageLogListingModel::AddMessageInternal(const TSharedRef<FTokenizedMessage,0> & NewMessage, bool bMirrorToOutputLog) Line 81 C++
UE4Editor-MessageLog.dll!FMessageLogListingModel::AddMessages(const TArray<TSharedRef<FTokenizedMessage,0>,FDefaultAllocator> & NewMessages, bool bMirrorToOutputLog) Line 102 C++
UE4Editor-Core.dll!FMessageLog::Flush() Line 198 C++
UE4Editor-Core.dll!FMessageLog::~FMessageLog() Line 95 C++
UE4Editor-UnrealEd.dll!UEditorEngine::EndPlayMap() Line 496 C++
UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1973 C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 401 C++
UE4Editor.exe!FEngineLoop::Tick() Line 3339 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 166 C++
UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 209 C++
[External Code]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to AnswerHub just mention UE-60147 in the post.

Login to Vote

Affects Versions4.194.20
Target Fix4.21
Fix Commit4277471
Main Commit4352452
Release Commit4399518
CreatedJun 8, 2018
ResolvedAug 10, 2018
UpdatedOct 6, 2020