Upgrade from 5.2 to 5.5 causes assertion error with chaos

I inherited a project in 5.2, and decided to upgrade to 5.5. The components seem to exist, but is not active, which I suppose is what causes the crash. As far as I can tell, the last function it works is where it runs AttachParentComponent->WakeAllRigidBodies(); in the TickComponent(). Does anyone know what could have changed during the upgrade to cause this?

Assertion failed: Component && Component->IsActive() [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\PhysicsEngine\Experimental\PhysScene_Chaos.cpp] [Line: 205]

0x00007ff9c61d9f3d UnrealEditor-Engine.dll!FAsyncPhysicsTickCallback::OnPreSimulate_Internal() [D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\PhysicsEngine\Experimental\PhysScene_Chaos.cpp:205]
0x00007ff9c3aab6b2 UnrealEditor-Chaos.dll!Chaos::FPhysicsSolverBase::ApplyCallbacks_Internal() [D:\build++UE5\Sync\Engine\Source\Runtime\Experimental\Chaos\Public\Chaos\Framework\PhysicsSolverBase.h:603]
0x00007ff9c3ff9ace UnrealEditor-Chaos.dll!Chaos::FPBDRigidsSolver::ApplyCallbacks_Internal() [D:\build++UE5\Sync\Engine\Source\Runtime\Experimental\Chaos\Private\PBDRigidsSolver.cpp:794]
0x00007ff9c3ab5a50 UnrealEditor-Chaos.dll!Chaos::FPhysicsSolverFrozenGTPreSimCallbacks::GTPreSimCallbacks() [D:\build++UE5\Sync\Engine\Source\Runtime\Experimental\Chaos\Private\Chaos\Framework\PhysicsSolverBase.cpp:135]
0x00007ff9c3ab3f07 UnrealEditor-Chaos.dll!TGraphTaskChaos::FPhysicsSolverFrozenGTPreSimCallbacks::ExecuteTask() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h:634]
0x00007ff9d3bf2722 UnrealEditor-Core.dll!UE::Tasks::Private::FTaskBase::TryExecuteTask() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Tasks\TaskPrivate.h:504]
0x00007ff9d3be7d4a UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksNamedThread() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:779]
0x00007ff9d3be81ee UnrealEditor-Core.dll!FNamedTaskThread::ProcessTasksUntilQuit() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:668]
0x00007ff9d3bf59aa UnrealEditor-Core.dll!FTaskGraphCompatibilityImplementation::WaitUntilTasksComplete() [D:\build++UE5\Sync\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp:1526]
0x00007ff9c6af4ea4 UnrealEditor-Engine.dll!FTickTaskSequencer::ReleaseTickGroup() [D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:815]
0x00007ff9c6b0493d UnrealEditor-Engine.dll!FTickTaskManager::RunTickGroup() [D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\TickTaskManager.cpp:1866]
0x00007ff9c5accf5f UnrealEditor-Engine.dll!UWorld::RunTickGroup() [D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:774]
0x00007ff9c5ad5de3 UnrealEditor-Engine.dll!UWorld::Tick() [D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:1518]
0x00007ff9cbdd4b78 UnrealEditor-UnrealEd.dll!UEditorEngine::Tick() [D:\build++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:2140]
0x00007ff9cca642c6 UnrealEditor-UnrealEd.dll!UUnrealEdEngine::Tick() [D:\build++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:550]
0x0000029d754d6c5d UnrealEditor-DisplayClusterEditor.dll!UDisplayClusterEditorEngine::Tick() [D:\build++UE5\Sync\Engine\Plugins\Runtime\nDisplay\Source\DisplayClusterEditor\Private\DisplayClusterEditorEngine.cpp:191]
0x00007ff63eaa6b47 UnrealEditor.exe!FEngineLoop::Tick() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5877]
0x00007ff63eac57ac UnrealEditor.exe!GuardedMain() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:188]
0x00007ff63eac589a UnrealEditor.exe!GuardedMainWrapper() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:123]
0x00007ff63eac9114 UnrealEditor.exe!LaunchWindowsStartup() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:277]
0x00007ff63eadbd04 UnrealEditor.exe!WinMain() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:317]
0x00007ff63eadf0ba UnrealEditor.exe!__scrt_common_main_seh() [D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
0x00007ffa609ee8d7 KERNEL32.DLL!UnknownFunction

Hi @kevinhel ,
It could be that the crash is happening because, starting in 5.5, Unreal doesn’t allow physics functions to run on inactive components. Since you upgraded your project from 5.2 to 5.5, I’d also suggest checking if there’s any component still bound but with no reference assigned (ike something left empty). That might also be causing the issue.
Hope it helps!

Hi, thank you for the tip, but I’m a bit lost what exactly defines a “bound” component.

I went through all static meshes, and selected “Simulate Physics” as true. Some objects has “Simulate Physics” grayed out. We have our own underwater physics, but I can’t find anything there that disables Simulate Physics. In fact, that component runs SetSimulatePhysics(true); in BeginPlay().

When debugging the code, the grayed out propellers seems to be the ones there bIsActive = false. It has collision, I tried adding physical material, still can’t activate this. The parent simulates physics, could it be inherited from parent?

Am I even on the right track?

HI,
When I mentioned a “bound component with no reference,” I meant a case where a component is assigned in Blueprint or code, but for some reason it ends up deactivated or missing some configuration to work properly.

It can also happen that, even if the parent component is simulating physics, that causes issues with child components. In fact, if the parent has physics enabled but the child is inactive or not simulating, it can lead to conflicts or strange behavior.
It can also happen that the component is registered but not activated

As for the "Simulate Physics"option being grayed out, that might be because the object is attached to something that doesn’t allow physics simulation, or it’s in a state where Unreal blocks that option automatically(for example, if it’s welded to the parent).

Hello, sorry for taking some time away from this
I went through the crash log and resolved some errors and reference issues that could be related to this. Amongst the last warnings/Errors I am left with are 3 references of this type.

LoadErrors: Warning: While trying to load package /Game/UI/Panels/UIP_Scalable, a dependent package /Game/UI/Main_UI/Singles/UIS_Density was not available. Additional explanatory information follows: FPackageName: Skipped package /Game/UI/Main_UI/Singles/UIS_Density has a valid, mounted, mount point but does not exist either on disk or in iostore. The uncooked file would be expected on disk at 'C:/Users/Developer/Documents/Unreal Projects/Simulator 5.5/Content/UI/Main_UI/Singles/UIS_Density.uasset'. Perhaps it has been deleted or was not synced?

I was looking through the reference viewer, and found the following. I guess that these likely fit the bill of “bound components with no reference”. However, I cannot find where this reference is made. How can I best clean up these references? Do I have to remake the UIP_Scalable widget? These missing widgets are already deleted from the Content, and I cannot find them in the UIP_Scalable hierarchy.

Edit: I recreated the widget which seemingly got rid of the reference errors, but it seems to not have been the only issue..

Ok, after some more digging, I also have these lines in the log that are the next likely contributors to this issue. I have no idea where these are coming from, but I assume “TrashedPackage” indicate that the garbage collector is at fault. How do I even go along troubleshooting this?

[2025.07.18-10.33.58:917][750]LogPackageName: Warning: DoesPackageExist called on PackageName that will always return false. Reason: Input 'TrashedPackage_145' is not a child of an existing mount point.

At this point, I am not even sure what is causing the project to crash. The warning seems to complain that the condition is always false, not that it’s TrashedPackage, but the fact that there are TrashedPackages in circulation could indicate a bigger issue. However, this part of the log is before BeginPlay(), so it could simply just not be initialized yet. It seems to successfully run BeginPlay() afterwards, but fails somewhere at the TickComponent(). Likely at _Base->WakeAllRigidBodies();, but I can’t say for sure.