k2Node ReturnPin

When I customize K2Node, the return value cannot be connected to the pin obtained by breakStruct. I customized a pin of type EGPD_Output to output a variable after a custom structure is brokenStructed. However, after I get the specified pin, the final output pin and the obtained pin are both of output type, so they cannot be connected. Is there any solution?
`
void UK2Node_GetStatusData::ExpandNode(class FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph)
{
Super::ExpandNode(CompilerContext, SourceGraph);

const UEdGraphSchema_K2* Schema = CompilerContext.GetSchema();
UK2Node_CallFunction* const function = CompilerContext.SpawnIntermediateNode<UK2Node_CallFunction>(this, SourceGraph);
function->FunctionReference.SetExternalMember(GET_FUNCTION_NAME_CHECKED(UStatus, GetCharStatus), UStatus::StaticClass());
function->AllocateDefaultPins();

CompilerContext.MovePinLinksToIntermediate(*StatusPin(), *(function->FindPinChecked(TEXT("self"))));

// Break the struct
UK2Node_BreakStruct* breakStruct = CompilerContext.SpawnIntermediateNode<UK2Node_BreakStruct>(this, SourceGraph);
breakStruct->StructType = FCharacterStatus::StaticStruct();
breakStruct->AllocateDefaultPins();
breakStruct->ExpandSplitPins(CompilerContext, SourceGraph);

UEdGraphPin* structInput = breakStruct->FindPinChecked(FCharacterStatus::StaticStruct()->GetFName());

CompilerContext.MovePinLinksToIntermediate(*function->GetReturnValuePin(), *structInput);


UEdGraphPin* structOutputPin = breakStruct->FindPinChecked(PropertyNamePin()->GetDefaultAsString());

CompilerContext.MessageLog.NotifyIntermediateObjectCreation(breakStruct, this);

ReturnValuePin()->MakeLinkTo(structOutputPin);


BreakAllNodeLinks();

}
`