Attempting to modify an interface. Assertion failed: Pin == NULL || Pin->Direction == EGPD_Output

I’m not sure what’s going on exactly.
This started happening when I was attempting to modify an interface. Granted it was was post 3am at the time so it’s entirely plausible I did something, unknowingly.

Regardless; I need to “shift” a few functions to a new/different interface.
So I created a new interface, made copies of the functions I wanted to shift (giving them different names). Updated all the interface calls I could find to the newer functions. Built it, ran it. Everything seemed fine. Then I began deleting the old interface functions and when I pressed delete on one of the functions, the engine shut down.
Now the engine won’t open the project.

So, from an earlier backup I tried again; same thing. This backup was from before I had tried to touch the interface. I got to the same point, tried to delete the interface function; crashed.
So I made another copy from the earlier backup. This time I got half way. I had just created a new function within the same interface, tried to set a default value for a pin of said function, and upon pressing Enter it crashed.

The first error in the log it shows is this:

[2016.11.14-14.07.41:521][  0]LogWindows: Windows GetLastError: The operation completed successfully. (0)
[2016.11.14-14.07.49:061][  0]LogWindows:Error: === Critical error: ===
[2016.11.14-14.07.49:061][  0]LogWindows:Error: 
[2016.11.14-14.07.49:061][  0]LogWindows:Error: Assertion failed: Pin == NULL || Pin->Direction == EGPD_Output [File:D:\Build\++UE4+Release-4.13+Compile\Sync\Engine\Source\Editor\BlueprintGraph\Private\K2Node_CallFunction.cpp] [Line: 1077] 
[2016.11.14-14.07.49:061][  0]LogWindows:Error: 
[2016.11.14-14.07.49:061][  0]LogWindows:Error: 
[2016.11.14-14.07.49:061][  0]LogWindows:Error: 
[2016.11.14-14.07.49:061][  0]LogWindows:Error: KERNELBASE.dll
[2016.11.14-14.07.49:061][  0]LogWindows:Error: UE4Editor-Core.dll!

Full log here: Log

I’m going to load myself up with coffee and try to hunt the problem down.
Failing that I’ll try replacing the interfaces entirely.
If anyone is good at deciphering log files and has the time, I’d appreciate the help.

Thanks.

After painfully detaching my interfaces, modifying, then re-implementing them, replacing a blueprint (that had for no apparent reason began to play up by losing variables

and then refusing to have the interface re-applied to it), I am back to where I was before this whole problem arose.

I don’t know what the problem was, or even why it happened. I hope it’s not some underlying issue. Regardless; I can carry on working for now.

I have and will have the ‘broken’ project backed up should anyone from Epic want it for perusal in future; just ask!

Cheers.

Hello eanandroid,

I would be interested in taking a look at that project. I will say though, if this involved literally copy/pasting the functions, that could be part of it because sometimes it’s copying references instead of just the nodes themselves. I’m glad to hear that you’ve worked around the issue though.

Thanks Matthew,

I think I may have copy-pasted content at times, but I don’t think I did within the interface functions (like the one in the image).
Shortly after I took the screenshot I replaced DestinationWidget with a brand new variable and the exact same thing happened. The function itself is an interface function that I would have connected manually.
I’ve since re-factored my project to use the interfaces differently. In doing so I replaced the interfaces I had entirely and haven’t had any issues since.

I was wondering though; a couple of things actually:

Are there are any known bugs related to interface function variables having default values?

When you detach an interface from a blueprint that has implemented some of its functions; are the functions you modified and don’t “keep” persistent? I know I can’t see them listed any more, but do they remain on disk somewhere?

Anyway, if you would still like to take a look, that’s no problem at all. Is it just the content folder + uproject you need?

Thanks for getting back to me too. I was sure this post was going to fall into the ether.

I personally haven’t seen anything reported related to interface function variables having default values but I’m not sure I’ve ever tried it before either. You can search our public bug database for issues if you’d like to see if you can find anything.

As far as I know, unless you hit “Yes” when asked if you would like to keep the functions that are being referenced as part of the blueprint itself when you remove the interface, they do not stick around and are officially removed once you save the blueprint.

For the project, I would need the .uproject file along with the Content, Config, and Source (if applicable) folders. Anything else can be excluded and generated locally.

Thanks again Matthew.

I had a glance in the public database. Didn’t see anything related to the default interface values. I did notice this one though: UE-20596 which seems similar to what I was experiencing when adding interfaces to a bp.

I’ll try to upload the files tonight and forward you a download link.

I apologize in advance for the mess and mercurial nature of the project you are about to see though. It’s due to my trying to make the UMG system work in my favour.

We haven’t heard from you in a while, eanandroid. Are you still experiencing this issue? If so, are you still able to upload your project? In the meantme, I’ll be marking this as resolved in the meantime.

I forgot about this post, my apologies.
Trying to remember…I think the cause of it was editing an interface whilst having an instance of the interface open in another editor window. Modifying the interface would disconnect pins in other editor windows where it was implemented (and possibly also focused in its window). Closing those windows/tabs then making changes seems to work just fine though so it’s just something I need to be aware of.

I wouldn’t bother wasting your time looking at the monstrosity of that project. I learnt that trying to bend UMG into something it isn’t-isn’t a great idea and gets too complex and problematic; thus I abandoned what I was attempting to achieve and decided to just keep my UMG simple from then on instead.

Thankyou for the help though, I do appreciate it.