Timer with many scale mesh jump to last

Godot Version

v4.3.dev6.official [89850d553]

Question

I want to do some object scaling with the idea of seeing how the timer works with the source code and it seems that from either the display on the render window or the script it only shows me the scaling of Vector3(1, 1, 1) and the last one Vector3(2.1, 0.1, 2)
See the project Send Anywhere

extends Node3D

var delay_time = 2.0
var initial_scale = Vector3(1, 1, 1)
var scale_factor = Vector3(0.1, 0.1, 2)
var initial_scale1 = Vector3(1, 3, 1)
var scale_factor1 = Vector3(2.1, 0.1, 2)
var timer

func _ready():
	timer = Timer.new()
	add_child(timer)
	timer.wait_time = delay_time
	timer.connect("timeout", _on_timer_timeout)
	timer.start()

func _on_timer_timeout():
	modify_mesh_scale(initial_scale)
	timer.wait_time = delay_time
	modify_mesh_scale(scale_factor)
	timer.wait_time = delay_time
	modify_mesh_scale(initial_scale1)
	timer.wait_time = delay_time
	modify_mesh_scale(scale_factor1)
	#timer.start()  # Restart the timer to repeat the scaling

func modify_mesh_scale(new_scale: Vector3) -> void:
	$MeshInstance3D.scale = new_scale
	print("Mesh scale modified to: ", new_scale)

do you have a camera & world environment in the scene?

you have the project at Send Anywhere

Sorry don’t know/trust that website. No offense.