Creating an AnimationTree transition at runtime via script

Godot Version

v4.2.1.stable.mono.official [b09f793f5]

Question

I’m creating AnimationNodeStateMachineTransitions at runtime with this function:

public AnimationNodeStateMachineTransition TransitionTo(string targetAnim, float XFade, bool doTransition)
	{
        string currAnim = stateMachine.GetCurrentNode();
		if (animationStateMachine.HasTransition(currAnim, targetAnim))
		{
			if (doTransition) stateMachine.Travel(targetAnim);
			GD.Print("Has transition");
            return null;
		}
		else 
		{
           AnimationNodeStateMachineTransition transition = new AnimationNodeStateMachineTransition();
		   transition.XfadeTime = XFade;
		   transition.SwitchMode = AnimationNodeStateMachineTransition.SwitchModeEnum.Sync;
		   transition.AdvanceMode = AnimationNodeStateMachineTransition.AdvanceModeEnum.Enabled;
           
		   GD.Print("transition made");
		   if (doTransition) stateMachine.Travel(targetAnim);

		   return transition;
		}
	}

This works, however the transition is always instantaneus, even if I pass an XFadeTime higher than 0. What is the problem with my code?