Description

When a function in a blueprint (BP created or BlueprintCallable from code) has nodes calling that function in the event graph, deleting the function entirely does not remove the nodes that already exist.

If the node is free floating (not connected to an event execution path) the blueprint will still compile, but this can lead to packaging errors with blueprint nativization. This was not reproduced locally, log message provided by licensee.

Regression:
No - same behavior occurs in 4.15.3

Steps to Reproduce
  1. Open UE4 Editor (any project)
  2. Add blueprint based on Actor
  3. Add new function to the blueprint
  4. In the Event Graph, add node calling the new function
  5. Delete the function from the blueprint

Result:
The function call node is still present on the graph even though the function no longer exists.

Expected:
Any unused function call nodes are removed if the function is deleted. If a function call node is in use, a warning prompt is presented when deleting the function.

Callstack
LogOutputDevice:Error: Ensure condition failed: FunctionReference.IsSelfContext() || (MemberClass != nullptr) || bIsLocalMacro [File:\Engine\Source\Editor\BlueprintGraph\Private\K2Node_CallFunction.cpp] [Line: 1701]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-49686 in the post.

0
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.15.34.16.34.17.14.17.2
CreatedSep 13, 2017
ResolvedSep 13, 2017
UpdatedApr 27, 2018