How to properly pass TArray variable via RPC function's parameter in C++?

The RPC function literally does nothing for testing purpose but my clients stop working/moving, rotating etc…/ except server. Everything is working fine if i remove TArray parameter from RPC functions. It works if i create public replicated array and change it every frame. But the game becomes really laggy and jittery, so i really don’t want to create replicated variable that’s heavily modified every frame. Also there is no compiler error. How to properly pass TArray variable via RPC function’s parameter? What am i doing wrong? Please help me, almost stuck on this whole three days.

Here is the Header file declaration:

 UFUNCTION(Reliable, Server, WithValidation)
 void Cone_Server(const TArray<FVector>& vertices);
 void Cone_Server_Implementation(const TArray<FVector>& vertices);
 bool Cone_Server_Validate(const TArray<FVector>& vertices);
     
 UFUNCTION(Reliable, NetMulticast)
 void Cone_Multicast(const TArray<FVector>& vertices);

Here is the CPP file definition and call:

void AMafiaCharacter::Tick(float DeltaSeconds)
 {
     Super::Tick(DeltaSeconds);
 
     TArray<FVector> ConeVertices;
     //Some actions on ConeVertices;
  
     if (HasAuthority() && IsLocallyControlled())
     {
         Cone_Multicast(ConeVertices);
     }
     else
     {
         Cone_Server(ConeVertices);
     }  
 }
 
 void AMafiaCharacter::Cone_Server_Implementation(const TArray<FVector>& vertices)
 {
     Cone_Multicast(vertices);
 }
  
 bool AMafiaCharacter::Cone_Server_Validate(const TArray<FVector>& vertices)
 {
     return  true;
 }
  
 void AMafiaCharacter::Cone_Multicast_Implementation(const TArray<FVector>& vertices)
 {
  
 }

Probably you use the wrong method for your goals. The goals are not clear.

However, if you really need to pass the big dataset to and from the server, the best choice is to use TCP channels.
For example: wiki.unrealengine.com