TFunctionRef becomes nullptr after timeline finished inside a lambda. Is this behaviour intended?

[TL/DR] TFunctionRef parameter becomes null inside a lambda called after a timeline finish

I have two actors. Player and Cannon. When the player fires the cannon he must wait until the timeline of the cannon is finish before he can move again. So i created a functions with a callback to notify the player.

Inside LoadAmmo OnLoadCompletedCallback is not null (checked with breakpoints) but when it is called after the timeline is over, it has null value.

Now, i changed TFunctionRef<void()> for a Delegate (using DECLARE_DELEGATE) and it works ok . References is not becoming null.

So i fixed but i would like to know why this happens.

[Bonus question] it is possible to bind a lambda to FOnTimelineFloat ( AddInterpFloat callback)?

void APlayerCharacter::LoadCannon(ACannon* Cannon)
    currentAction = EPlayerActions::LOADING_CANNON;
     Cannon->LoadAmmo(carriedAmmo, &]()

         currentAction = EPlayerActions::MOVE;



void ACannon::LoadAmmo(TArray<AAmmunition*> AmmoStack, TFunctionRef<void()> OnLoadCompletedCallback)
    if (loadCurve == nullptr)return;

    FOnTimelineFloat timelineProgress;
    FOnTimelineEventStatic onTimeLineFinished;
    ///OnLoadCompletedCallback is NOT NULL HERE
    ///AmmoStack is NOT NULL here
    timelineProgress.BindUFunction(this, FName("TimelineEvaluateFloat"));
    onTimeLineFinished.BindLambda(&, AmmoStack, OnLoadCompletedCallback]()
        OnLoadCompletedCallback();///OnLoadCompletedCallback es null here?why
        for (AAmmunition* ammo : AmmoStack)///AmmoStack is Not NULL here ?why


    loadTimeLine->AddInterpFloat(loadCurve, timelineProgress);