How to have consistent collision detection between two players?

Options

Hello,

I'm making an online 2D platformer game like tag, where one player chases the other player and upon collision their positions reset and their "tagged" status switches. I'm having an issue where sometimes one player detects the collision but the other player doesn't, which results in both players being tagged/neither being tagged, as well as the position not resetting on the player that didn't detect the collision. I tried turning off "Is Local" on the Photon Transform View component and it lessened the frequency of the problem, but it did not completely fix it.

Any help would be appreciated. Here is the code:

    void Start()
    {
        spawnPosition = new Vector3(transform.position.x, transform.position.y, 0f);
        if (PhotonNetwork.CurrentRoom.PlayerCount == 2)
        {
            tagged = false;
        }
    }

    public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
    {
        if (stream.IsWriting)
        {
            stream.SendNext(tagged);
        }
        else
        {
            this.tagged = (bool)stream.ReceiveNext();
        }
    }

    private void Update()
    {
        tagIndicator.SetActive(tagged);
    }
    
    private void OnCollisionEnter2D(UnityEngine.Collision2D collision)
    { 
        if (!collided && collision.rigidbody != null && collision.rigidbody.tag == "Player")
        {
            collided = true;
            Invoke("Respawn", .2f);
        }
    }

    void Respawn()
    {
        tagged = !tagged; 
        playerPrefab.transform.position = spawnPosition;
        Invoke("ResetCollision", .5f);
    }

    void ResetCollision()
    {
        collided = false;
    }