ensure ObservedKeyNames.Num() > 0 failed in UBTDecorator_BlueprintBase::PostLoad()
I added a decorator that derived from 'BTDecorator_BlueprintBase' to behavior tree for check if the pawn was still alive or it will to do nothing. So 'aborts self' was set to the decorator.
And there's no necessary to use value in blackboard.
After I compiled the blueprint, saved it, and cooked content for windows, I ran the game in VS2013, and got a break point triggering at 'ensure(ObservedKeyNames.Num() > 0);'
In this situation, the value of bIsObservingBB is 'true' and FlowAbortMode is 'Self'. But I didn't observe any variables in blackboard, it cannot get ObservedKeyNames from 'CollectBlackboardSelectors'.
So why the value of 'bIsObervingBB' is 'true'? Who set it? And when?
In the constructor of 'BTDecorator_BlueprintBase', you can see it was assigned to 'false'.
In function 'InitializeProperties', it was assigned to ‘’BlueprintNodeHelpers::HasAnyBlackboardSelectors(this, StopAtClass);‘.
I add breakpoints in these two line, but the latter didn't triggered.
If I add an arbitrary BlackboardKeySelector variable to the decorator but not use it, it won't trigger the 'ensure' failed.
I don't know what's wrong with my blueprint or behavior tree, or is it a engine's bug?
asked May 19 '15 at 06:35 AM in Bug Reports
Please let me know if any of this worked for you.
answered May 19 '15 at 10:03 AM
I'm getting this bug as well. (4.17.1)
Oddly, it seems to have been caused by 'Duplicating' a decorator in the Content Browser rather than creating one from a new asset. Going to re-create my Decorator and see if it's still the issue.
Follow this question
Once you sign in you will be able to subscribe for any updates here