Blueprint struct, Unknown structure, crash

I changed the type of a variable in a blueprint defined structure and relinked/recompiled all related blueprints. However on PIE the editor crashed and since then it crashes when accessing any blueprint using the struct:

log.zip

LogProperty:Error: UStructProperty::Serialize Loading: Property 'StructProperty /Game/System/Blueprints/WidgetCreator_Interface.WidgetCreator_Interface_C:GetWidgets.Widgets.Widgets'. Unknown structure.

The struct asset itself can be opened. Restoring an earlier version didn’t help.

Hey!

So I had a similar problem recently.

I made changes to a user-defined struct, saved it and then while referencing that struct in an anim blueprint, I got a crash. I also had an interface that was dependent on that struct which could not be saved due to the crash.

It seems like after you changed your user defined struct ‘Widgets’, you forgot to compile and save your WidgetCreator_Interface which references that struct.
The struct probably got serialized to disk, but because of the crash, the interface couldn’t update the changes to disk.

The solution is to restore a backup of both the struct and interface and try to open the project. It will throw an error saying properties are missing from the struct for other dependent objects. You can then modify your struct and update the interface as required and make sure to save!

Cheers :slight_smile:

I fixed this by restoring all related assets from a backup. Then I created a second struct with the intended changes and manually replaced all references. As a last step I deleted the now unused original and renamed the new one.

This was a pain so next time I run into this issue I’ll try your solution.

Awesome. I’d recommend using Ctrl+S to save everything to disk immediately once you update any data structures.

I have a somewhat similar issue. The editor isn’t crashing when reopening it but the cook fails reporting the same message.

I believe the cause to be the same, the editor crashed at some point and since then every time I reopen the project i have to relink several variables that are using a specific Struct.

And while it still works fine in the editor without a crash, the compiler fails.

Yeah I’m also getting this problem any ideas on how to fix it rather than recreating these all over again.

I’m having the same problem - everything works fine in editor, but the cook fails.
MainFrameActions: Packaging (Windows (64-bit)): UE4Editor-Cmd: [2016.04.17-19.56.47:151][ 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/ShooterNetwork/Blueprints/NPCs/NPCController_Base.NPCController_Base_C:myWeapon’. Unknown structure.

So, 8months later I get the issue again.
Found a way to fix it though : move the struct in a different folder, and relink broken links.

I guess it kind of refresh everything.

do you mean manually relinking broken links?

Thanks Genova!! I had a similar problem as you did, i tried alot of things that didnt work. Then i tried to do as you said with moving the structs to a different folder, fixed the issue right away. Now i can compile without problems. THX!!!

Thank god I found this thread of posts. I was getting an error in my crash report “Warning: Ambiguous search, could be WidgetBlueprintGeneratedClass /Game/UI/AllLevels/Talent_Tree.Talent_Tree_C” This Talent tree widget heavily uses a Struct file. Within the Editor I moved the Struct file and all its respective SaveGame file to a new folder. I also moved AND renamed the widget in the warning which. Compile & Save on all these files and also on the Player Controllers that also reference the Struct.

Fixed it for me; saved my life since a month’s worth of backups had this crash and I didn’t know!

OMG! Thank you. This saved my life. I had around 200 errors due to a crash and not saving the structs. I have learned my lesson. I moved my structs to new folder and everything is working now.

Did you do this within the editor or in the explorer? I can’t seem to move the struct within the editor it causes a crash :confused: