(Blueprint) Crash on compile if breaking custom struct

Hi,
I have this custom struct:

If I have one as an input on a function, and then break it:

15024-break.png

the editor crashes when I attempt to compile the blueprint., and (crucially), the blueprint seems unrecoverable. Even if I delete the entire function, compiling will always crash now (don’t worry, I had the file versioned so I’m okay).

It doesn’t matter what’s being fed through in the struct - I can create a new input of that type and break it and it’ll still crash.

Also, it only happens if it’s an input on a function. I can break the struct anywhere else no problems.

Here’s the log:
‘ShipRoom_C_0’ is of class ‘ShipRoom_C’ however property ‘IntProperty_91’ belongs to class ‘TRASHCLASS_ShipRoom_79’
Stack:
Address = 0xdf235216 (filename not found) [in F:\ue4\Unreal Engine\4.4\Engine\Binaries\Win64\UE4Editor-Core.dll]

Hi Joe,

I haven’t been able to get the issue to reproduce yet. I just have a couple of questions.

Can you also get this to repro in a new project?

Could you post screenshots of the entire Event Graph showing how your are calling the break and another for the default values of the struct?

Sure, the default values are pretty straightforward:

Thing is, it doesn’t seem to matter if I never call the break, I still crash. Update though: I found out that the crash only happens if I have (or have had) an instance of this actor in the level when I compile. If I create a new empty level, I can compile the blueprint when I’m in there, and then going back to another level that has the blueprint already in it, everything works as it’s supposed to. But if I even add the blueprint to the empty level, delete it, and then compile, I crash.

I forgot to mention that this actor, ShipRoom, is being created as a child actor of another blueprint, Ship, originating with Ship’s constructionscript ([this is what I’m making][2]). The functionality all works fine once it’s compiled, it just won’t compile while the Ship actor is in the level (defeating the purpose of constructionscript, tbh).

The project’s really small, so it’s probably easiest if I just send you the files? I haven’t been able to repro this in a new project yet.

Sent you a message on there. Thanks :slight_smile:

Yeah, if you don’t mind uploading a zip to Googledrive or Dropbox and private message me a link on the forums to download the project.

https://forums.unrealengine.com/

Hi Joe,

I was able to get the crash to reproduce. I have entered it as TTP# 346344 into our tracking software and attached your project. Our developers will be looking into the issue and we will post back here as soon as we have something.

I also noticed while testing your project that when the ‘Ship’ bp is compiled, the number of assets in the Scene Outliner will minus by a set amount each time, going into the negative. I’m not sure if this is related but I mentioned it in the TTP.

TJ

Oh, weird. Thanks.
Do you think I’d be shooting myself in the foot to just keep implementing stuff and working around the crash in the meantime?

I just tested that asset count thing. The set amount that the number of actors in the Outliner subtracts per compile == the number of ShipRooms. Also, here there are 10 shiprooms, but one of them is numbered 19? Not sure if relevant.
I vined it, 'cause that’s how I document bugs.

I can’t be certain because I’m not sure of what the fix could be, but you should be able to keep working. If you work on something that doesn’t directly tie into the ‘ship’ and ‘shiproom’ blueprints would probably be best, but in the long run it may not matter.

Had a new crash problem that I feel like probably stems from the same underlying issues with custom structs so I’ll post it here: same project. On any class blueprint (even a completely empty one), make a new variable which is an array of Rooms. This works fine while you’re in the editor, whatever you might be doing with it, but if, by default, the array actually contains any Rooms, saving the blueprint will cause the editor to crash.
Leaving the array empty by default, but making it an editable var and adding to the array on an instance of your actor in the level will also cause a crash on save.
Basically, array of Rooms being nonzero = crash on save, but I don’t think there’s anything wrong with the struct itself.

Hi Joe,

Unfortunately we don’t have a workaround for you, but whatever was causing the issue is now fixed in our internal version of the editor.

You should see this fixed in a future update, possibly 4.5.

Thanks,
TJ