Collider stops working after colliding with object of same type

I’m having a problem with some objects in my project. They have non-kinematic rigidbodies, and the collision detection works fine when the objects are initialised. The problem seems to occur when two of these objects collide with each other. After this occurs, no other collisions register.

I can fix the problem by changing the rigidbody to kinematic, but I am using physics to control the object’s rotation, so I’d rather not or I will have to rewrite that bit of code.

Here is the code for the collision detection that is not firing:

  void OnTriggerEnter(Collider other)
    {
        if (other.tag == "PlayerAttack" || other.tag == "MeleeAttack" || other.gameObject.tag == "Wall")
        {
            if (other.tag == "PlayerAttack")
                Destroy(other.gameObject);
            BulletManager bm = other.GetComponent<BulletManager>();
            if (bm != null)
            {
                health -= bm.GetDamage();
            }
            else
                health--;
            if (health <= 0)
            {
                StartCoroutine("ExplodeSelf");
                if (other.gameObject.tag != "Wall")
                    scoreBoard.AddScore(1);
            }
        }
    }</code>

You’re using OnTriggerEnter, which will only register when the first frame of a collision is detected. What you probably want is OnTriggerStay