Is there a reason why check is used here for the race condition? Is it possible to handle it instead of throwing an exception?
void UBlueprintGeneratedClass::InitPropertiesFromCustomList(uint8* DataPtr, const uint8* DefaultDataPtr)
{
FScopeLock SerializeAndPostLoadLock(&SerializeAndPostLoadCritical);
check(bCustomPropertyListForPostConstructionInitialized); // Something went wrong, probably a race condition
if (const FCustomPropertyListNode* CustomPropertyList = GetCustomPropertyListForPostConstruction())
{
InitPropertiesFromCustomList(CustomPropertyList, this, DataPtr, DefaultDataPtr);
}
}