NPC animation glitch with Humanoid:MoveTo()

Hello. I have an issue with my npc walking animation when it’s enemy is flying around because of hitting invisible walls around the arena they are fighting on. Here’s a piece of my code:

while task.wait(.4) do
		local closestChar = Follow(newTarget) -- This function determines if there's an enemy character in range
		if closestChar and char.Humanoid.Health > 0 then
			if (closestChar.HumanoidRootPart.Position - Humrp.Position).Magnitude > 2 then
				char.Humanoid:MoveTo(closestChar.HumanoidRootPart.Position,closestChar.HumanoidRootPart) -- This is the MoveTo() I am using for chasing the enemy
			else
				char.Humanoid:MoveTo(Humrp.Position,closestChar.HumanoidRootPart) -- This is for not letting the npc moving to you infinitely, so they stop moving to you if you're close enough
			end
		end
	end

Here’s the video of the weird walking: Animation Glitch
I think that flinging enemy causes this glitch, however it only happens with npcs, if the npc fights the player, the glitch does not happen. If you have any ideas (Using another service for moving or disabling ragdoll of the enemy), let me know.
PS: I use BodyVelocity for knockback