Quick answer: Unreal Blueprint async action’s OnCompleted pin firing with empty result struct? The C++ Broadcast was called before the result was populated, or your USTRUCT skipped UPROPERTY on the fields.
An HTTP request async action delivers OnCompleted but the Response struct is all defaults. Either the broadcast ran too early or the struct fields aren’t marked replicating to Blueprint.
Populate Before Broadcast
Result.Status = 200;
Result.Body = ResponseBody;
OnCompleted.Broadcast(Result);
SetReadyToDestroy();Fill the struct entirely before Broadcast. Mutating after has no effect on the BP side.
USTRUCT Fields Need UPROPERTY
Blueprint can’t see fields without UPROPERTY(BlueprintReadOnly) or BlueprintReadWrite. Missing tag = blank pin even if the C++ side is populated.
Pin Visibility
For complex structs, add BlueprintType to the USTRUCT macro. Without it, the struct isn’t exposed as a pin type at all.
Verifying
The OnCompleted pin’s Result drag yields all the fields with the real returned values. No blank defaults.
“Async result pins need a populated struct with BlueprintType + UPROPERTY fields.”
Add a structured log line right before Broadcast that prints the struct — you’ll spot empty fields before BP shows them.