The same script doesn't work for all objects

I have two identical objects with the same script attached. Each object has 2 bboxes in children tagged “Hand”. The script has a condition in which if something tagged “Hand” collides with the player, something happens.

void OnCollisionEnter(Collision Hand){
		if (Hand.collider.tag == "Hand"){ 
			Debug.Log(gameObject.name);}

But when I test the game, it’s always only one of them who detects collisions and the other doesn’t. Strangely, one of them doesn’t detect collision with “Hand” particularly and detects all other collisions, while another one detects all collisions, including “Hand”.
Players are absolutely identical, their only difference is render material.
How is it possible?

Try This Defiantly it works :

   void OnCollisionEnter(Collision Hand)
	{
		if(Hand.gameObject.CompareTag("Hand")
		   {
			Debug.Log(gameObject.name);
		}
	}