In UE 5.7 there were some changes to how Enum member names are stored. This change introduces an assert when cooking using the Editor Debug executable. Cooking any map using the debug executable will asset shortly after the cooker commandlet starts up.
The flow leading to the asset is as follows:
UObject::DeclareCustomVersions calls CDO->Serialize() and UEnum::Serialize() calls AddNamesToPrimaryList() which calls Names.GetNames() which will hit the checkfSlow assert (in Class.h) since TaggedNames is nullptr (and it should not be here).
My fix was to add the following at the top of Enum::AddNamesToPrimaryList() to skip any CDO Enums (since they won’t have any enumeration members anyway).
void UEnum::AddNamesToPrimaryList()
{
if (HasAnyFlags(RF_ClassDefaultObject))
{
return;
}
FWriteScopeLock ScopeLock(AllEnumNamesLock);
[Attachment Removed]