We upgraded a project from 4.20.3 to 4.22.3 several weeks ago. Recently I have started to encounter an issue with REINST components showing up in a BP which has caused some serious productivity issues.
Some details:
The project is mainly BP but we have added C++ code recently, although it isn’t directly related to the REINST component (it is derived from scene component and fully implemented in BP).
From my observation, in one case the issue happened after simply adding a new variable (non-transient) to a component that later went REINST on a referencing Actor BP. I tried flipping the new var to transient, closed & reloaded editor and the REINST is fixed. I don’t think this is necessarily exactly the cause, because I have seen it on the same BP without adding a var - just modifying code & adding functions, probably changing a function signature.
The changes related to the “cause” did not add any new dependencies between BP classes.
The REINST component showed up after I shut down the editor and reloaded (also showed up for others after I checked in while the editor was still loaded w/ good refs). At this point the game has critical BP errors or crashes if I try to run it.
The component does not appear to have turned into a REINST component on all BPs that use it.
Is there anything to glean from this? Is there a known issue internally? Any potential workarounds or fixes I could use to hopefully fix this and move on? I didn’t find any clues from my searches on recent engine builds.
In the other recent case where I have seen this (on the same BPs), it happened after I added a new dispatcher to the component (which I believe is also basically a variable on the BP generated class). I also changed code, but I have changed code at other points without getting a REINST issue.
Second note: I can delete the dispatcher that I added and it seems to fix the REINST after I close an open editor (although the first time I did this, this component on my actor BP disappeared completely and I had to revert the actor BP and then fix the broken refs to the dispathcher)
The component causing the problems is already chock full of variables & several dispatchers, so it struck me as odd that adding new one(s) would cause the behavior to change.
I can probably work around for now with an interface, but this is the type of issue is scary when productivity is at stake! Planning to move a lot of code to C++ in the near future anyway, but this just gives me one more reason to do so.
I am still interested in insights on the issue, would like to avoid it on any other BPs that don’t make their way to C++ in the project.
We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.