A user reported an issue where, if a BlueprintCallable function's parameters are edited, a blueprint using a BlueprintCallable function will give warnings instead of an error for a problem after the editor has been closed and reopened.

Regression?: YES
Did not occur: 2872498 (4.10.4 Release)
Occurs: 2954100 (4.11.2 Release)

Note: In 4.10.4 and prior, the warning/error never showed up as the pin was automatically disconnected when the hot reload took place.

Steps to Reproduce
  1. Create a new C++ project
  2. Add a new C++ class based off the Actor class.
  3. Inside of Visual Studio, in MyActor.h, add the following lines of code at line #23
     UFUNCTION(BlueprintCallable, Category = "Test")
    	void GetEquipmentTypesForCharacter(int32 CharacterID, TArray<int32> &ClothingID); 
  4. In MyActor.cpp, add the following lines of code at line #29
     void AMyActor::GetEquipmentTypesForCharacter(int32 CharacterID, TArray<int32> &ClothingID)
  5. Compile the project
  6. Inside of the editor, create a blueprint based off your new actor class
  7. Add an instance of the previously created function (GetEquipmentTypesForCharacter)
  8. Pull off of the ClothingID pin and select "Promote to Variable"
  9. Return to Visual Studio and replace the "TArray<int32>" in the function's declaration and definition with "int32"
  10. Compile the project
  11. Return to the editor and hit compile on your blueprint
  12. Notice that it gives you an error as the variable no longer matches up with the pin.
  13. Save the project and close/reopen the editor.
  14. Open the blueprint from earlier
    Result: The Error is now a Warning, allowing the user to attempt to play which in most cases will result in a crash
    Expected: The Error should remain an error or the pin should be disconnected automatically

Have Comments or More Details?

Head over to the existingAnswerHub thread and let us know what's up.

Login to Vote

ComponentGameplay - Blueprint
Affects Versions4.114.124.13
CreatedMay 3, 2016
UpdatedDec 1, 2017