ConditionalBeginDestroy causes crashes when level restarts :(

Hey so when I call openlevel it causes a crash and I’ve located the crash to the line where I destroy my UObject using obj->ConditionalBeginDestroy()

Can someone please help me out and tell me what to do and why it is crashing

Thank you! Any help is much apprecitaed! :frowning:

Error Log:
Assertion failed: Object->HasAnyFlags( RF_BeginDestroyed ) && !Object->HasAnyFlags( RF_FinishDestroyed ) [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/UObject/GarbageCollection.cpp] [Line: 1410]

UE4Editor_Core!FWindowsErrorOutputDevice::Serialize() [d:\build++ue4\sync\engine\source\runtime\core\private\windows\windowserroroutputdevice.cpp:79]
UE4Editor_Core!FOutputDevice::LogfImpl() [d:\build++ue4\sync\engine\source\runtime\core\private\misc\outputdevice.cpp:71]
UE4Editor_Core!AssertFailedImplV() [d:\build++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:101]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [d:\build++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:445]
UE4Editor_CoreUObject!IncrementalDestroyGarbage() [d:\build++ue4\sync\engine\source\runtime\coreuobject\private\uobject\garbagecollection.cpp:1410]
UE4Editor_CoreUObject!IncrementalPurgeGarbage() [d:\build++ue4\sync\engine\source\runtime\coreuobject\private\uobject\garbagecollection.cpp:1350]
UE4Editor_CoreUObject!CollectGarbageInternal() [d:\build++ue4\sync\engine\source\runtime\coreuobject\private\uobject\garbagecollection.cpp:1867]
UE4Editor_CoreUObject!CollectGarbage() [d:\build++ue4\sync\engine\source\runtime\coreuobject\private\uobject\garbagecollection.cpp:1946]
UE4Editor_Engine!UEngine::TrimMemory() [d:\build++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:12709]
UE4Editor_Engine!UEngine::LoadMap() [d:\build++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:12345]
UE4Editor_Engine!UEngine::Browse() [d:\build++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:11876]
UE4Editor_Engine!UEngine::TickWorldTravel() [d:\build++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:12074]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1610]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:407]
UE4Editor!FEngineLoop::Tick() [d:\build++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:4257]
UE4Editor!GuardedMain() [d:\build++ue4\sync\engine\source\runtime\launch\private\launch.cpp:173]
UE4Editor!GuardedMainWrapper() [d:\build++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:147]
UE4Editor!WinMain() [d:\build++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:279]
UE4Editor!__scrt_common_main_seh() [d:\agent_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

Are you destroying an object while calling OpenLevel?

1 Like

No destroy object is called in begin play of a random actor

Could you show some code? Is the random actor itself destroyed or another object? Is your code trying to access the object after Destroy has been called? Errors like these pop up when objects that are marked for garbage collection still exist (because the GC hasn’t run yet) and some other part of code tries to access them.

1 Like