Instances used in Interface might temporary corrupt levelblueprint

We have just upgraded to 4.17.1 and quickly started to notice this bug.

I have narrowed it down in a standalone test level.
Steps to reproduce:

  • Create a simple empty level.
  • Create and actor MyObjBP in my case.
  • Add the new actor to the level.
  • Create an interface with one function Called GetMyObject. Set it to return a MyObjBP.
  • Add the interface to the level blueprint.
  • In the level blueprint, implement the interface GetMyObject and drag in the MyObjBP you placed in the level.

Compile and save all.

Here comes the bug:
If you now change something in MyObjBP, like add a print string or change some values maybe, compile and save, there is a chance that the level blueprints MyObjBP instance reference becomes weird.

And compiling the level blueprint will say:

Can't connect pins  New Param  and  <Unnamed> : My Obj BP Object Reference is not compatible with Object Reference.
Can't connect pins  <Unnamed>  and  New Param : Object Reference is not compatible with My Obj BP Object Reference.
[1090.30] Compile of PersistentLevel.InterfaceTest failed. 2 Fatal Issue(s) 0 Warning(s) [in 29 ms] (/Game/InterfaceTest.InterfaceTest:PersistentLevel.InterfaceTest)

Doing “Refresh All Nodes” at this points fixes the issue, until next time you edit and compile the MyObjBP blueprint. Note that you might have to edit and compile a couple of times to trigger this bug.

Hey -

I was able to reproduce the compile error in 4.17.1 however it appears that this has been fixed as the same reproduction steps do not cause an error in the 4.18 preview. Let us know if you continue to have this issue in the latest engine version.

Cheers