Position of character delayed after getting un-detained (weld destroyed)

Ok, so I’m making a detain tool, everything works fine expect when the player gets un-detained (netWorkOwnerShip set to the player getting detained, disconnecting all detain events, destroying welds etc.) and the player detaining the character spins around while un-detaining, then for the character getting un-detained there is no delay in position, but for the server there is a small delay between it. (I’m not best at explaining, so I will send a streamable video): https://streamable.com/dsl9s9

Here is the un-detain script:

function detainServerModule:UnDetainPlayer(playerDetaining, shouldRemoveDetainTable)
	local foundPlayerDetainTable = self:FindDetainTable(playerDetaining)

	if not foundPlayerDetainTable then return end

	local playerGettingDetained = foundPlayerDetainTable.PlayerGettingDetained

	local charOfPlayerGettingDetained = playerGettingDetained.Character or playerGettingDetained.CharacterAdded:Wait()
	local HumanoidOfPlayerGettingDetained = charOfPlayerGettingDetained:FindFirstChild("Humanoid")

	if not HumanoidOfPlayerGettingDetained or not charOfPlayerGettingDetained:FindFirstChild("HumanoidRootPart") then return end	
	
	self.MakeAllBodyPartsMassless(charOfPlayerGettingDetained, false)
	self.SetCollisionGroupOfCharacter(charOfPlayerGettingDetained, "Default")
	self.CleanAllConnections(foundPlayerDetainTable)
	self.SetNetworkOwnerShipOfCharacter(nil, charOfPlayerGettingDetained, false)
	self.DestroyAllWelds(foundPlayerDetainTable)
	
	stopAnimationsRemote:FireClient(playerGettingDetained, false)

	HumanoidOfPlayerGettingDetained.JumpPower = 50
	HumanoidOfPlayerGettingDetained.WalkSpeed = 16

	if shouldRemoveDetainTable then
		for index, detainTable in pairs(self.detainDataBase) do
			if detainTable == foundPlayerDetainTable then
				table.remove(self.detainDataBase, index)	
				break
			end
		end
	end
end```