The source of the error appears to be a stray DefaultValue="None" that's contained within the inner "Test_Nested_TestContainer" split pin (copy/paste the node to notepad to see this). If you refresh the node, then the DefaultValue="None"  goes away. Additionally, it gains a tooltip entry.

There appears to be a discrepancy with how pins are created during a split when performed manually vs refresh.

Steps to Reproduce
  1. Stuff below code into blueprint library somewhere.
  2. Open up any script, level blueprint probably easiest on empty level.
  3. On beginplay drop in "Test Function", hook up execute pins
  4. Compilation now will correctly give you the requires REF error.
  5. Split the TestRoot struct - Compiles fine now
  6. Split the TestNested struct - default value error pasted above.
  7. Refresh the test function node - now Compiles fine.


struct FTestNested
 UDataAsset* TestContainer; //Can also be TObjectPtr<UDataAsset>

struct FTestRoot
 FTestNested Nested;

//consts etc removed for clarity.
UFUNCTION(BlueprintCallable, meta=(WorldContext = "WorldContextObject"))
static void TestFunction(UObject* WorldContextObject, UPARAM(ref) FTestRoot& Test) {};



Have Comments or More Details?

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

Login to Vote

ComponentUE - Gameplay - Blueprint
Affects Versions5.0
CreatedAug 17, 2022
UpdatedFeb 13, 2024
View Jira Issue