Description

When an FName is created with a trailing underscore and any number of digits in the range of 1-9 the trailing digits are used as the internal number value for the FName lookup. This results in the FName FNAME_Find test returning an incorrect value for None when a comparison or lookup is requested.

Steps to Reproduce

1. Create a C++ function
2. In that function, construct an FName in C++ with a trailing underscore followed by digits in the range of 1-9 for the first parameter and ‘FNAME_Find’ as the second parameter. e.g ‘FName Test(TEXT("Thisisatest_1234"), FNAME_Find);’
3. In that function add a check to compare the newly constructed FName against ‘NAME_None’ e.g ‘check( Test == NAME_None );’
4. Call the function during runtime
5. Observe the check failing

Expected Result: The FName has a value of “None”
Actual Result: The FName has a value of “None_1234”

Have Comments or More Details?

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

1
Login to Vote

Unresolved
ComponentUE - Graphics Features
Affects Versions5.45.5
CreatedApr 15, 2025
UpdatedApr 17, 2025
View Jira Issue