A strange bug about blueprint interface

I have some blueprint interfaces with a strange bug. Some blueprint classes which implement interface will show error when they are compiled. But these error will disappear when I refresh the nodes which have error. Moreover, every time I open this project, these errors will also appear (error msg: In use pin XXX no longer exists on this node. Please refresh node or break links to remove pin). How to fix it? Thanks.

I the same problem, have you found a solution?

I opened the interface, pressed “compile” and saved it. I did not see those errors anymore when running the editor or the game.

I renamed the function in the interface and pressed “compile”. This problem temporarily disappear.

I had the same issue when I modified an input argument on an interface and had the “Refresh Node” error on blueprints that implemented that interface function.

My workaround (that survives a clean get) is to create a dummy method in the interface and press compile.

Very frustrating. Hope Epic fixes this ASAP.

Related issue is UE-31622, but I experienced this problem with interface methods without struct parameters.

In our case we failed to manage to make interfaces declared in blueprints to work properly.
The issues we faced: ImplementsInterface node returned false to class that contained that interface. Every new interface was corrupting classes that implemented it upon editor restart.
Workaround was to declare them using C++.

A good work around for this so far seems to be answering “Yes” upon removal when it asks you if you want to implement the interface functions into the Blueprint as its own functions. Better to do this after you remove all uses of the functions, that way you just have to clean up empty functions.

Same issue here UE4.17.1,
invalid pins which refresh + compile solves but then reappear once you restart the engine.

I was able to solve this by:

  1. Compiling the Interface Blueprint itself (the BP that defines the interface names, inputs and outputs)
  2. Go to the actor that implements the interface and has the “invalid” pins, refresh the relevant interface functions
  3. Compile the actor.

If this doesn’t work I’d try completely removing the interface from the actor and re-implementing it.

Seems to have fixed the issue even after engine restart.

Hope this helps.