Custom structure in blueprint corrupts Project

Similar to what DasMatze posted. CustomStructure can corrupt the project. I’ve created a sample project showing an Actor with a CustomStructure I’ve made. I’ve included log reports from a different project I’m working on experiencing the same issue.

CustomStructure Bug Sample Project: CustomStructBug

Engine Version: 4.61

Instructions to Completion:

  1. Create CustomStructure.

  2. Create Interface with Function
    returning CustomStructure.

  3. Create UserWidget with
    CustomStructure and Implement
    Interface & Populate Function

  4. Create Actor Class that Spawns the
    UserWidget, and get the
    CustomStructure using the Interface.

  5. Make Changes to CustomStructure.

  6. Compile Dirty Blueprints.

  7. Save All.

  8. Place Actor Within Level.

  9. Reload Project.

I believe this bug report is related to DasMatze.

Project Log Reports:

[2015.02.09-03.37.54:154][126]LogContentBrowser:Verbose: The content browser source was changed by the sources view to ‘/Game/StarterContent’

[2015.02.09-03.38.04:984][780]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/StarterContent/Interface.Interface_C:GetStruct.return’. Unknown structure.

[2015.02.09-03.38.05:005][780]LogBlueprint:Error: [compiler] Error Invalid property ‘return’ structure ‘newStruct’ error: Struct ‘UserDefinedStruct /Game/StarterContent/newStruct.newStruct’ is empty

[2015.02.09-03.38.05:006][780]LogBlueprint:Error: [compiler] Error Failed to create property return from Return due to a bad or unknown type (New Struct Structure)

[2015.02.09-03.38.05:007][780]LogBlueprint:Warning: [compiler] Warning [0040.11] Compile of Interface failed. 2 Fatal Issue(s) 0 Warning(s) [in 1 ms]

[2015.02.09-03.38.05:007][780]LogLinker:Warning: BoolProperty_97 has an inappropriate outermost, it was probably saved with a deprecated outer.

[2015.02.09-03.38.05:018][780]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/StarterContent/aWidget.aWidget_C:GetStruct.return’. Unknown structure.

[2015.02.09-03.38.05:018][780]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/StarterContent/aWidget.aWidget_C:coolStruct’. Unknown structure.

Related Log Reports:

[2015.02.09-02.23.13:650][ 0]LogLinker:Warning: ByteProperty_119 has an inappropriate outermost, it was probably saved with a deprecated outer.

[2015.02.09-02.23.13:661][ 0]LogLinker:Warning: StructProperty_786 has an inappropriate outermost, it was probably saved with a deprecated outer.

[2015.02.09-02.23.13:661][ 0]LogLinker:Warning: TextProperty_63 has an inappropriate outermost, it was probably saved with a deprecated outer.

[2015.02.09-02.23.13:666][ 0]LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/Blueprints/*****’. Unknown structure.

[2015.02.09-02.23.14:933][ 0]LogBlueprint:Error: [compiler] Error Variable node Set Parent uses an invalid target. It may depend on a node that is not connected to the execution chain, and got purged.

[2015.02.09-02.23.15:358][ 0]LogBlueprint:Warning: ExposeOnSpawn ambiguity. Property ‘IntProperty /Engine/Transient.REINST__C_19:’, MetaData ‘False’, Flag ‘True’

[2015.02.09-02.23.15:444][ 0]LogBlueprint:Error: [compiler] Error COMPILER ERROR: failed building connection with ‘***** Reference is not compatible with ***** Reference.’ at Create Widget

[2015.02.09-02.23.15:492][ 0]LogBlueprint:Error: [compiler] Error This blueprint (self) is not a *****_C, therefore ’ Target ’ must have a connection

Adding some context. I’m using UMG heavily within Editor.

What I believe is happening:
UMG seems to have issues with Interfaces. I’m not sure what its related to, but errors continued to happen when I had them in the UMG Blueprint.

This also causes problems when those widgets are used in Other blueprints which reference them. Causing them to Reinstance? I guess.

I think UMG tries to get the information from the Interface, and something isn’t handled properly when everything is loaded initially. So the UMG is dirty, and a temporary one is made, creating issues with referencing because now original types don’t match temporary.

So – we have CustomStructure, Interface, and UMG at play in this.

Hello `,

I downloaded the project from the link provided and I do not see any errors and the project does not appear to crash. Is there something that I need to do to get the project to crash or is there some other form of corruption?

Did you try opening the Map in the Starter Content Folder?

Hello `,

I was able to reproduce this issue with the project given if I clicked on the map first. If I opened the struct first the project would run fine. This may be due to a circular dependency. However, I have submitted a report ( UE-9747) to the developers for further consideration. I will provide updates with any pertinent information as it becomes available. Thank you for your information and time.

Make it a great day

had the same issue in my project, removing refs to classes that ref the struct fixed the problem so it is definitely circular dependency. i hope y’all can fix that, it is a real PITA

EDIT2: this is fixed for me in 4.7

same issue, trying to fix this corrupted my project which now crashes on any startup map load other than template default :smiley:
EDIT: ok it crashes on anything that has even remotely to do with the struct. to the rescue backups (and i figured the mapload triggers loading the linked gamemode/instance etc)