Second Coroutine isn't working Unity

I am making 2D game and want to cause delay of about 3 sec after player’s all lives ran out. I tried to implement Coroutine method before the scene start all over again but it doesn’t work. I have already implemented Coroutine method for each time my player falls of a cliff and respawn back to its position. And it works like a charm.

public void Respawner() { StartCoroutine("RespawnCoroutine"); }

    // Coroutine  Delay of 2 sec for each time player Respawn
    public IEnumerator RespawnCoroutine()
        {
            classobj.gameObject.SetActive(false);   
            yield return new WaitForSeconds(respawnDelaySec);
            classobj.transform.position = classobj.respawnPoint;
            classobj.gameObject.SetActive(true);

        }

        public void ReduceLives() {
        if (lives <= 3 && lives >= 2) { lives--; live_text.text = "Remaining Live " + lives; }
        else {
            StartCoroutine("RestartScene1");

             }


    }
   public IEnumerable RestartScene1()
    {
       yield return new WaitForSeconds(RestartSceneDelaySec);
         SceneManager.LoadScene("demo2");
    }

here is no error on console window but SceneManager.LoadScene(“demo2”); is never called and the player is respawning each time after i die and after 1 life remaining

change IEnumerable to IEnumerator on your RestartScene1 coroutine.