Found a bug which appears in next condition.
Condition:
- We have UObject* based blueprint class.
- We have custom settings class registered with SettingsManager.
- We have TSubclasOf inside of our settings class.
- We have filled our variale (3) with our object’s class (1).
- We have called GetDefault() from constructor of other native (or maybe not only) class.
Here’s what happening (as far as i found) :
There is a stage inside of Unreal when every blueprint reconstructed (lets call it first) and there is a stage where all objects classes are initializing and loading their default objects (lets call it second). So second one happens inside of first and when it meets our actor (5) it tries to load our settings class and provoking population of QueuedRequests list which is populated before first stage and supposed to be empty when per-class iteration starts. So when iteration ends and function comes to an end it appears that QueuedRequests is not empty and ensure is failing.
What it leads to?
With this bug i cant package my game as it throws error on ensure failed.
Temporary workaround
I preffered to temporally move using my settings class (2) from constructor to BeginPlay function.