Argument Out Of Range

    public void PickPuzzle()
    {
        //string name = UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject.name;

        if (!firstGuess)
        {
            firstGuess = true;
            firstGuessIndex = int.Parse(UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject.name);
            firstGuessPuzzle = gamePuzzles[firstGuessIndex].name;
            btns[firstGuessIndex].image.sprite = gamePuzzles[firstGuessIndex];
            btns[firstGuessIndex].interactable = false;
        }
        else if (!secondGuess)
        {
            secondGuess = true;
            secondGuessIndex = int.Parse(UnityEngine.EventSystems.EventSystem.current.currentSelectedGameObject.name);
            secondGuessPuzzle = gamePuzzles[secondGuessIndex].name;
            btns[secondGuessIndex].image.sprite = gamePuzzles[secondGuessIndex];
            btns[firstGuessIndex].interactable = true;

            if (firstGuessPuzzle == secondGuessPuzzle)
            {
                print("Puzzle match");
            }
            else
            {
                print("Puzzle don't match");
            }
            StartCoroutine(checkThePuzzleMatch());
        }

giving me errors on secondGuessPuzzle = gamePuzzles[secondGuessIndex].name;
tried to solve it couldn’t do anything

solved