We see the following error sometimes when running the game with cooked content.
Assertion failed: !GEventDrivenLoaderEnabled || !bLockoutLegacyOperations || !(1) […\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp] [Line: 4530]
Invalid call to FLinkerLoad::Preload while using the EDL. '1928920464' should have been reported via GetPreloadDependencies instead.
The asset in question is UUserDefinedStruct, which is only referenced in the Control Rig via the namespace in calls to GetUserData in the graph (on the Construction event). In the Reference Viewer, we do see the connection between the Control Rig and the asset for the UUserDefinedStruct. The SkeletalMesh has Data Asset Linker that is pointing to a Primary Data asset.
This Primary Data asset is derived from a base Primary Data Asset blueprint. This base Primary Data Asset contains a variable that is an Array of UUserDefinedStruct mentioned earlier.
Depending on the order the load calls come into FAsyncLoadingThread determines if the error hit or not. Depending on whether the UUserDefinedStruct is completely loaded before the Control Rig determines if we hit the error or not. It seems like even though a hard reference between the Control Rig and the UUserDefinedStruct is being created. However, when loading the content in the game the Control Rig seems to be requesting data similar to how a soft refence would.
Is there something we are missing that would make this error go away? I have not found any documentation on how best to use the Data Asset Linker and what is needed to make things get cooked correctly. The Get User Data function is returning the array of this structure which is why the link is created between the Control Rig and this UUserDefinedStruct.
Thank you.