Split struct BP nodes don't update or throw warning when changing struct

Hello,

I noticed a bug in 4.17 where changing a split struct node(NOT break) doesn’t update when you change the struct.

Ex: You have a struct with a String and an Integer, you split the struct and then change the struct type in the variable details panel to a struct with a Float and a vector. This split struct node, that is spawned in the graph before changing the struct type will not update, even if you recombine and split again, it does not update.

Issue with this is that when you have a nested struct(struct inside a struct) and you still access the old nested struct type, you crash the engine - although haven’t been able to reproduce this with bp → bp changed struct, I assume if you make it a C++ one and you then try to access a BP one, it will give you a crash. This split struct node doesn’t give a warning, error or any message of any kind that it is still the old one.

This is quite problematic as in a project where I transferred all BP struct to a C++ struct with identical structures, ordering and naming of the bp struct, I can’t tell if it’s the new or the old one and these structs are everywhere causing me to having to hover over every split struct node I can find and checking if it’s still the old one or experience a crash and go over every part of the functions that happened at that moment.

How to reproduce:

Open a project in 4.17
Create 2 structs (Struct A(String, integer, Struct B) and StructB(Float, Vector)).
Create an actor, add a struct A variable.
Go to the event graph, spawn the Struct A and split it by right clicking the variable and click “Split struct”
Edit the variable to now be Struct B
Spawn the variable in the graph again, leaving the first one as well(Do not delete the first one)
Split the second spawned struct

Here you will see that the first spawned is still on the old struct type, allowing you to recombine and split again as much as you want,

To reproduce the crash, create struct A and struct B both in blueprints as you’ve done, then add C++ to the project and create Struct A and Struct B identically in c++, then change the struct in the actor to the struct A in the blueprint, if you then try to access the old-spawned blueprint struct from the split struct, you should cause a crash.

Image:
Both spawned split structs are the exact same variable in the blueprint, the bottom one is the one I spawned after I changed struct type in the variable editor.

211359-ue4editor-2017-08-28-12-53-03.png

Hey Panda-

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-49060) . 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