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?
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?
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.
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.