Hi Danny,
I modified the code like you said in your previous reply and when running a package, the check is not longer trigerring, so in this case it is fine. However, soon after when loading the package, we fail elsewhere for the related data causing us issues in the following function:
FAsyncPackage2::EventDrivenSerializeExport
For the check:
checkObject(Object, Object->HasAllFlags(RF_NeedPostLoad | RF_WasLoaded));The value we have for our object “B” is the following:
Object = Default__B_C
ObjectFlags RF_Public | RF_Transactional | RF_ClassDefaultObject | RF_ArchetypeObject | RF_WasLoaded | RF_LoadCompleted (2621497) EObjectFlags
Here’s the callstack for this failing check:
> P27-Win64-DebugGame.exe!FAsyncPackage2::EventDrivenSerializeExport(const FAsyncPackageHeaderData & Header, int LocalExportIndex, FExportArchive * Ar) Line 8953 C++
P27-Win64-DebugGame.exe!FAsyncPackage2::Event_ProcessExportBundle(FAsyncLoadingThreadState2 & ThreadState, FAsyncPackage2 * Package, int InExportBundleIndex) Line 8051 C++
P27-Win64-DebugGame.exe!FEventLoadNode2::Execute(FAsyncLoadingThreadState2 & ThreadState) Line 6001 C++
P27-Win64-DebugGame.exe!FAsyncLoadEventQueue2::PopAndExecute(FAsyncLoadingThreadState2 & ThreadState) Line 6176 C++
P27-Win64-DebugGame.exe!FAsyncLoadingThread2::Run() Line 10570 C++
P27-Win64-DebugGame.exe!FRunnableThreadWin::Run() Line 159 C++
P27-Win64-DebugGame.exe!FRunnableThreadWin::GuardedRun() Line 71 C++
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown
Please note that I also have 2 others objects of the same type that are failing, I will call them “C” and “D”. During the cook process (with “cook.displaymode 4”), these 3 objects display the message I was saying earlier (you can replace B by the full path to B, C or D, ie, /PathToB.B), which like I said earlier might be the reason why it fails in the package in the end, because it seems something is not added to it:
LogAssetRegistryGenerator: Removing Asset B from the runtime AssetRegistry; it does not exist in the cooked package.If I pass these failing checks, then I get an ensure for the class D in:
UBlueprintGeneratedClass::InitPropertiesFromCustomList
[2026.05.07-12.56.13:459][ 1]LogOutputDevice: Error: Ensure condition failed: bCustomPropertyListForPostConstructionInitialized [File:D:\p4\p27_dev_main\Engine\Source\Runtime\Engine\Private\BlueprintGeneratedClass.cpp] [Line: 1256]
Custom Property List Not Initialized for /PathToD.D_C
The “cleaned” callstack leading to this is in the form:
P27-Win64-DebugGame.exe!UBlueprintGeneratedClass::InitPropertiesFromCustomList::__l3::<lambda_1>::operator()() Line 1256 C++
> P27-Win64-DebugGame.exe!UBlueprintGeneratedClass::InitPropertiesFromCustomList(unsigned char * DataPtr, const unsigned char * DefaultDataPtr) Line 1256 C++
P27-Win64-DebugGame.exe!FObjectInitializer::InitProperties(UObject * Obj, UClass * DefaultsClass, UObject * DefaultData, bool bCopyTransientsFromClassDefaults) Line 4716 C++
P27-Win64-DebugGame.exe!FObjectInitializer::PostConstructInit() Line 4372 C++
P27-Win64-DebugGame.exe!FObjectInitializer::~FObjectInitializer() Line 4242 C++
P27-Win64-DebugGame.exe!StaticConstructObject_Internal(const FStaticConstructObjectParameters & Params) Line 4989 C++
P27-Win64-DebugGame.exe!NewObject<A>(UObject * Outer, const UClass * Class, FName Name, EObjectFlags Flags, UObject * Template, bool bCopyTransientsFromClassDefaults, FObjectInstancingGraph * InInstanceGraph, UPackage * InExternalPackage) Line 1913 C++
Below this point we are in a BeginPlay on an actor and on a component of this actor in its BeginPlay, we create an object of class D which derives from A.
[Attachment Removed]