[4.15] DataTable, recompile and hotreload bug

I added two new properties to my table row struct in C++ and then compiled using hot-reload.
The two new properties were not showing on my datatable editor so I restarted the editor.
Once I restarted the editor I found out that my data table asset is now corrupt, it’s trying to reference a hotreloaded struct as the row struct for the datatable when it should reference my “standard” struct, so all my table data is lost.
For some reason the editor saved the hotreloaded row struct as the row struct reference for the data table asset.

Screenshot:

Hey Sveitar,
I ran into a similar issue with data assets in 4.12. Did you save your data table before hot reloading, or were there unsaved changes? I think unsaved changes during hot reload could be the culprit here.

I always tend to save before playing in editor, so yes, I’m almost sure that I saved before hot reloading. Either way it should be fixed. The engine should never save that HOTRELOADED reference into the asset.

Hey Sveitar-

What class does your struct exist in? Can you provide the code for your struct and repro steps to help me reproduce the issue on my end?

Hi !

The struct is inside of its own header file, the code is attached.

I didn’t experience the issue again, but the steps are pretty much what I said in the first post. As I remember I added two properties and hot reloaded the project from editor.
Let me know if I can help you with anything.

Thanks!
link text

Hey Sveitar-

Thank you for submitting a bug report. I have reproduced this issue and logged a report for it here Unreal Engine Issues and Bug Tracker (UE-43408) . You can track the report’s status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.

Cheers

We now have version 4.22.1 and it is still not fixed -.-

I think this bug is a serious issue.

issue is still present on unreal 5.0.3, same steps to reproduce as mentioned in report UE-43408

the way for this issue not to happen and break a lot of stuff is to close the unreal editor, compile the code with the changes using VS or the tool of your preference, and then reopen the editor to see the changes…

it’s really sad to have to open and close the unreal editor just because you wanted a new member in the struct, for large projects this could be a big time waster

1 Like

Hi, I just wanted to poke this as I am having a similar error. I only noticed it recently and I am working with UDataAssets so perhaps it is related to that? Blueprint node references break stating garbled HOTRELOADED object types. Resetting editor helps but it has been happening very often. Any suggestions or things I might be missing when working with DataAssets?

if you’re working with data assets and C++, i’d suggest that after any API changes to your custom assets or structs that are used, you first build the project with the editor closed, Hot Reloading causes a lot of issues on that front

we never hot reload our project, as any compilation done that way is temporary and you have to hot reload each time if you don’t compile your source code outside the editor

this issue is pretty annoying to say the least tho

4 Likes

Thanks for the insight. I agree, pretty annoying to deal with.