[Bug] UE4 Editor (origin/master) with Blueprints and Interface-BP: Forgetting return values

I’am running into following bug, while using Blueprints and Blueprint Interfaces.

a) I have a BP Interface with one function, which returns a Vector array.

28784-iface.png

b) Then there is a BP ‘Base’ class, which implements this function and returns an empty array.

c) final BP is derived from b) and implements/overrides also interface function, but returns a valid array.
This is how it looks like before a restart:

Everything works as expected until I restart editor. Than I get an ‘unresolved compilation problem’ while starting editor and when I press Play a warning message is displayed (One or more blueprints has an unresolved compiler error, are you sure you want to Play in Editor?
Building_Store
).
This is how it looks like after a editor restart:

When I press ‘Yes’, editor crashes: 0xC0000005…:

UE4Editor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Result, UFunction * Function) Line 450 C++
UE4Editor-CoreUObject.dll!UObject::ProcessContextOpcode(FFrame & Stack, void * const Result, bool bCanFailSilently) Line 1451 C++
UE4Editor-CoreUObject.dll!UObject::ProcessInternal(FFrame & Stack, void * const Result) Line 602 C++
UE4Editor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Result, UFunction * Function) Line 516 C++
UE4Editor-CoreUObject.dll!UObject::ProcessInternal(FFrame & Stack, void * const Result) Line 602 C++
UE4Editor-CoreUObject.dll!UObject::CallFunction(FFrame & Stack, void * const Result, UFunction * Function) Line 516 C++
UE4Editor-CoreUObject.dll!UObject::ProcessInternal(FFrame & Stack, void * const Result) Line 602 C++
UE4Editor-CoreUObject.dll!UFunction::Invoke(UObject * Obj, FFrame & Stack, void * const Result) Line 3716 C++
UE4Editor-CoreUObject.dll!UObject::ProcessEvent(UFunction * Function, void * Parms) Line 924 C++
UE4Editor-Engine.dll!AActor::ProcessEvent(UFunction * Function, void * Parameters) Line 514 C++
UE4Editor-Engine.dll!AWorldSettings::NotifyBeginPlay() Line 126 C++
UE4Editor-Engine.dll!AGameMode::SetMatchState(FName NewState) Line 709 C++
UE4Editor-Engine.dll!AGameMode::StartPlay() Line 526 C++
UE4Editor-Engine.dll!UGameInstance::StartPIEGameInstance(ULocalPlayer * LocalPlayer, bool bInSimulateInEditor, bool bAnyBlueprintErrors, bool bStartInSpectatorMode) Line 218 C++
UE4Editor-UnrealEd.dll!UEditorEngine::CreatePIEGameInstance(int PIEInstance, bool bInSimulateInEditor, bool bAnyBlueprintErrors, bool bStartInSpectatorMode, bool bRunAsDedicated, float PIEStartTime) Line 2854 C++
UE4Editor-UnrealEd.dll!UEditorEngine::PlayInEditor(UWorld * InWorld, bool bInSimulateInEditor) Line 2209 C++
UE4Editor-UnrealEd.dll!UEditorEngine::StartQueuedPlayMapRequest() Line 972 C++
UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1239 C++
UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 348 C++
UE4Editor.exe!FEngineLoop::Tick() Line 2263 C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 142 C++
UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 191 C++
[External Code]

If I check overridden/implemented function of interface in BP c), I have noticed function signature is wrong. result of my function is empty (it does not expect a result anymore). If I delete implementation and reimplement it from scratch, it works until next editor restart.

I’am using latest code from origin/master.

Hi PapricaSix,

Thanks for report! I was able to reproduce this in our internal build, and have entered a bug report for developers to look over (UE-9408). I did not get a crash when I proceeded to Play with BP in level, but I believe it is related so fixing this issue should resolve crash. I will let you know when I see an update on bug. Thanks!

Thanks for your answer, have a nice day! :slight_smile:

Hey PapricaSix,

Just wanted to give you an update on this. It has been fixed internally, and fix should be integrated in 4.8 release. Thanks again for report!