Animation only works ONCE for other clients

Hey! I’m using the forked (slightly modified) default Animate local script (in StarterCharacter) for switching between run and walk animation, and it seems to work just fine. The only issue is that, if I try to go from walk to run it plays everything fine, but after that (in all of the next tries) then it will only play for local client. It seems to work if I jump between the switch (quickly changing humanoid states, but it isn’t viable to any other humanoid state type like landed; quickly playing another animation and stopping it also doesn’t work).

Piece of code from Animate local script:

script:WaitForChild("run").RunAnim:GetPropertyChangedSignal("AnimationId"):Connect(function()
	task.wait()	--for successfull rolling
	local runIdx = rollAnimation("run")	--gets the index in the animations id table
	animTable["run"][runIdx].anim.AnimationId = script.run.RunAnim.AnimationId	--changes the id
	if pose == "Running" then
		playAnimation("run", 0.2, Humanoid)
		task.wait()	--debugs
		setAnimationSpeed(runAnimSpeedMultiplier)
	end
end)

Video (left is local client, right is other client; run animation only works once I go through the “idle” state, or if I’m already pressing shift before moving):
https://streamable.com/2z64ha

Thank you for reading!