Help with my script

I Don’t know why this isn’t working but it should be working as it worked before the update, so the sword should be in the case lol and for some reason it does not i tried different thing but the closest was destroying it and replacing it and positioning it again.

Here’s the Script:

Sheth.OnServerEvent:Connect(function(Player)
	local Animation = Player.Character.Humanoid.Animator:LoadAnimation(script.Sheth)
	Animation:Play()
	local Sword = Player.Character["Right Arm"][Player.PlayerData.Sword.Value]
	Animation:GetMarkerReachedSignal("Sheeth"):Connect(function()
		local SwordWeld = Player.Character["Right Arm"].SwordWeld
		SwordWeld.Part0 = Player.Character.Torso
		SwordWeld.Part1 = Sword.Handle
		SwordWeld.C0 = Player.Character.Torso.CFrame * Player.Character.Torso.CFrame:Inverse()
		SwordWeld.C1 = Sword.Handle.CFrame * Sword.Handle.CFrame:Inverse() * CFrame.Angles(math.rad(90),math.rad(-105.3),math.rad(50)) *CFrame.new(0.68,0.87,1.95)
	end)
	spawn(function()
		wait(0.5)
		for i,v in pairs(Player.Character.Humanoid.Animator:GetPlayingAnimationTracks())do
			if v.Name == "Idle" then
				v:Stop()
			end
		end
	end)
	Player.SwordEquipped.Value = false
	wait(1)
	Sheth:FireClient(Player)
end)

https://medal.tv/games/roblox-studio/clips/doHWeotuJoct8/d1337TcyAAjX?invite=cr-MSw5UnIsMjEyNjI3MCw

Could it be because you are changing positions before / after the animation is finished?