.ClearTimer(FTimerHandle) in BT Task doesn't clear timer

Hello, I have a problem with ClearTimer. In this example code the task start the timer but doesn’t kill the timer when called ClearTimer in it’s function. The BehaviorTree task is executed only once and after the Timer delay ends, it finishes the task without problem but the timer continue looping. What am I doing wrong ?

EBTNodeResult::Type UBTTask_MoveTowardsEnemy::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory)
{
     AAI_Controller* AI_Cont = Cast<AAI_Controller>(OwnerComp.GetAIOwner());

	FTimerHandle TimerHandle;
	FTimerDelegate TimerDelegate(FTimerDelegate::CreateUObject
					<UBTTask_MoveTowardsEnemy, AAI_Controller *, FTimerHandle>
					(this, &UBTTask_MoveTowardsEnemy::DestUpdate, AI_Cont, TimerHandle));

	GetWorld()->GetTimerManager().SetTimer(TimerHandle, TimerDelegate, 0.5f, true);

	return EBTNodeResult::InProgress;
}




void UBTTask_MoveTowardsEnemy::DestUpdate(AAI_Controller * AI_Cont, FTimerHandle TimerHandle)
{
	GEngine->AddOnScreenDebugMessage(-1,1,FColor::Red, "Timer Alive");

	UBehaviorTreeComponent* BT = Cast<UBehaviorTreeComponent>(AI_Cont->BehaviorTreeComp);
	if (BT)
		FinishLatentTask(*BT, EBTNodeResult::Succeeded);

	GetWorld()->GetTimerManager().ClearTimer(TimerHandle);
}

Finally got it.

	FTimerHandle* TimerHandle;
	TimerHandle = new FTimerHandle;

and in function FTimerHandle* instead of FTimerHandle