Child with inherited AI Perception Componenent causes crash

Hello all,

Lately i’ve been receiving crashes with child blueprints that have a AI Perception Component inherited.
The engine itself doesn’t crash, however when closing the engine and booting it up again it does cause a crash making the project unable to boot up.

Only way to solve it is to delete the childed blueprints and set them up again. These are childs with no additonal code, nor is the AI Per. Com. adjusted in the children, it inherits everything. Only thing I change would be the Skel Mesh and even that causes it to be unable to boot up.

I’ve reset-up the childeren multiple times, I even tried to change the name of the per. com. but all with no luck. Anyone an idea?

Here’s the crash log:


Assertion failed: !Obj->HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad|RF_ClassDefaultObject) || bIsOwnedByCDO [File:D:\Build++UE4+Release-4.14+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp] [Line: 2358]
Attempting to replace an object that hasn’t been fully loaded: AISenseConfig_Sight /Game/_CORE_GAME/AI/Childs/FemaleRobot.FemaleRobot_C:AiPercepComp_GEN_VARIAB


Full crash log:

Hello,

So, after some investigation and testing, I believe that you’re running into the same issue as the one linked below:

The issue is currently being investigated by our developers, but there is no timeline for when a fix will be released at this time.

Thank you for your report.

Have a great day

Is there any kind of work around for this?

I’m not aware of a workaround at this time.

Hey, I just wanted to add that I’m having the same problem currently, but it’s with 4.15. Everything was working just fine until a handful of days ago - only thing that I even worked on in the project most recently were some post-process materials. But suddenly it really doesn’t like my AI perception component.

Really hoping this does get patched up soon. Project is entirely inaccessible after months of work.

The issue persists in 4.16 as well. The only workaround is to remove any (or all) of the senses added to the “Sense Config” array and saving the blueprint before closing the editor. This is quite a hassle though. =(

there is a workaround for this issue, as i’ve run into this problem a lot using aiperception components as well as procedural mesh components. if you’re using blueprints, don’t add the component in the components tab (meaning don’t use the +add component button). instead, in the construction script, add the component using a node i.e. “add ai perception component” or “add procedural mesh component”. then, assign the returned value to a variable. use that variable to do all your logic stuff. this method seems to bypass all of the registration problems causing the fatal errors, and actually allows for a null value where you can check if the variable is valid anyhow. fractionally larger overhead, but it works.

Thanks for the suggestion. How were you able to update the senses configurations via blueprint?

There is a workaround in blueprint too: Clear all AIPerception configurations (sense config, dominant sense) in the parent class. Than you can configure the AIPerception in the child classes like you want without crash. You can also use inherited AI events from parent class.

Amazing! Thank you, that solved my problem.

I moved my broken BP to another project and cleared all AIPerception configs. Then I moved my BP back to my main project and now I can launch it.

Have you figured out how to update the senses configurations yet? VIA Construction Script or BP?