cant access the same function twice

I have an boundary to detect game fail with a collecting system. And find the gameManager run EndGame(). But It only work at the first time. The collecting system works finely, enable and then disable. Bellow are my scripts.

public float delayTime = 3f;
void OnTriggerEnter(Collider other)
{
    FindObjectOfType<GameManager>().EndGame();
    //Destroy(gameObject);
    gameObject.SetActive(false);
    Invoke("Respawn",delayTime);
}
void Respawn()
{
    gameObject.SetActive(true);
}

And the gameManager

public void EndGame()
{
    if (GameHasEnded == false)
    {
        GameHasEnded = true;
       
        Invoke("ReturnSpawnPoint", RestartDelay);
        Debug.Log("Failed");
    }
}

public void ReturnSpawnPoint()
{
    Marble.transform.position = spawnPoint.position;
    Marble.GetComponent<Rigidbody>().velocity = Vector3.zero;
    //Debug.Log("Failed");
}

void OnTriggerEnter(Collider other) function does not work when this gameObject is disabled