Description

From the linked EPS case:

----------------------------

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);

Steps to Reproduce

Steps to Reproduce

Cook any map for the QAGame project using an Debug Editor executable. Notice that it will assert at UEnum::FNameData::GetNames in Class.h

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-358577 in the post.

0
Login to Vote

Unresolved
ComponentUE - CoreTech
Affects Versions5.7
CreatedDec 18, 2025
UpdatedDec 19, 2025
View Jira Issue