4.15 preview1 BUG Enum broken

After converting my project from 4.14.4 to 4.15p1,all my enums become empty like below:

Thanks!

We did change the way that display text was stored for user defined enums in 4.15, however I’ve not been able to reproduce this issue.

Would you be able to provide an example of a broken enum asset?

I just found this issue too. I don’t know how it happened exactly and only some enums were affected. I don’t know if this might be a clue but have a blueprint open which has that certain enum referenced as a variable or whatever. Then force close the editor or force it to crash or whatever.

EDIT: I have noticed something else. The enum that’s broken… Git doesn’t recognize it as modified. As in it might just be the engine reading it the wrong way?

I have this issue too. If I open 4.13 project on 4.15p1 all of the enums appear as reset to default. I hope this gets fixed before main release, because almost all of Marketplace BP content contain Enums.

The display name upgrade happens on load, so unless you save the asset again it won’t appear as modified.

I’ve tried making a BP referencing an enum in 4.13 and 4.14, and then moving it to 4.15, but I still can’t repro this issue.

If you check your log, do you see the following for your problematic enum?

Enum '{YourEnum}' was upgraded to use FText to store its display name data. Please re-save this asset to avoid issues with localization and determinstic cooking.

Are you able to repro this outside of your project, or would you be able to provide one of your problematic enums (the pre-415 version) so that I can try and fix this issue?

Hey everyone,

We have currently been unable to reproduce this issue internally. If anyone could do the following, it would be really helpful:

  • Create a simplified test project that showcases this issue. Provide the 4.13/4.14 version, as well as the 4.15 version. To do this, just go ahead and zip up the project, upload it to Dropbox or Google Drive, and post a download link here.

Alternatively, if anyone has a concrete set of repro steps we can use to consistently reproduce this on our end, you can provide that as well.

Thanks!

After investigation, I have found that,in the log,there is one line showing that warning,and only that concerning enum contains the right values,but all the others have been emptied to default values like the screenshot provided above.

What I suspect might be happening is that the meta-data for the enum isn’t always fully loaded by the time FEnumEditorUtils::UpgradeDisplayNamesFromMetaData tries to use it (during UUserDefinedEnum::Serialize).

Would anyone here be able to try out a source build to confirm that? Without a local repro I can’t really do it myself, so I’d only be able to make a speculative fix.

If anyone can, you’d want to put a breakpoint in FEnumEditorUtils::UpgradeDisplayNamesFromMetaData and verify that the call to Enum->GetMetaData is returning a non-empty display name (if my hunch is correct, the UMetaData in UEnum::GetMetaData will have an empty ObjectMetaDataMap).

I’ve made a speculative fix in CL# 3273243 (92b7d25).

I’d appreciate it if anyone having the issue is able to verify the fix using a source build.

Thanks,
Jamie.

Thanks!Do you mean that the fix will be included in the next preview build?

Yeah, the change will be in preview 3, but you can try a source build from GitHub if you want to test the change early.

Oh,that’s really a good news!Thank you for your help!

Like I said, I can’t promise you that this definitely fixes the issue as we’ve not been able to repro it locally, however if the issue is what I suspect it is then this change should solve the problem.

Please let me know either way once you get a chance to test it.

Thanks!I have tested the new preview3,that issue has been fixed!Unfortunately,here comes another issue concerning enums,all the switch enum connected to enum variables have broken like below:

124573-qq截图20170202092721.png

Great, thanks for letting me know.

With regards to this other issue, is that just a visual bug, or does it also break the links?

After some testing,it seems that this is only just a visual bug,but I’m not sure if all the wrong displayed enums due to the same issue.

So just to confirm, your E_StageState enum has the correct display names if you check in the enum editor, but has the internal names when used with a Switch node?

Not exactly,if I create a new switch node using enum in 4.15,all display well,I think after converting to 4.15,only already created switch to nodes displays wrong.

And in all cases, the enum now displays correctly in the enum editor?

Yeah ,except the ones converted from 4.14.3 like above.