I think I found issue. I guess it is indeed my lack of knowledge of UE. My blueprint method is
UFUNCTION(BlueprintCallable)
void RequestDiscard(const FDiscardRequest& DiscardRequest);
Const Ref. I guess it is working for BP but for calling it in C++ i am passing temp variable that is why it is going nuts. But BP doesn’t allow me to use && and Move semantic? Should I create separate method for C++ code for this case?