T Pose for a single frame when switching between Montages

I’m trying to play 3 montages one after the other but I’m getting TPose (for a single frame) in between switching montages

Can someone tell me why this is happening and how to fix it so all 3 montages play seamlessly?

Note: The Blend in and out time of all Montages is 0

UCLASS()
class TESTING_API AMyCharacter : public ACharacter {
    GENERATED_BODY()

   public:
    AMyCharacter();

    UPROPERTY()
    int32 CurrentMontageIndex = 0;

    UPROPERTY(EditAnywhere, Category = "Animations")
    TArray<UAnimMontage*> MontagesToPlay;

    UFUNCTION()
    void OnMontageEnded(UAnimMontage* Montage, bool bInterrupted);

    virtual void BeginPlay() override;
};



void AMyCharacter::OnMontageEnded(UAnimMontage* Montage, bool bInterrupted) {
	    CurrentMontageIndex++;

    if (MontagesToPlay.IsValidIndex(CurrentMontageIndex)) {
        UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance();
        if (AnimInstance && MontagesToPlay[CurrentMontageIndex]) {
            AnimInstance->Montage_Play(MontagesToPlay[CurrentMontageIndex]);
        }
    }
}
void AMyCharacter::BeginPlay() {
    Super::BeginPlay();

    UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance();
    if (AnimInstance && MontagesToPlay[0]) {
        AnimInstance->Montage_Play(MontagesToPlay[0]);
        AnimInstance->OnMontageEnded.AddDynamic(this, &AMyCharacter::OnMontageEnded);
    }
}