Coroutine don't work second time

In my game I have main menu through which I start new game and execute script below. But when I go back to the main menu and start new game again, script below doesn’t work. I tried to stop coroutine inside Start function, but it doesn’t helped

private IEnumerator OpenCloseEyesAnimation()
{
    if (!isOpenEyesAnimationStarted)
    {
        isOpenEyesAnimationStarted = true;
        openCloseEyes.OpenCloseDoor();
        yield return new WaitForSeconds(6.0f); // this line don't work after second launch
        stepNumber++;
        isOpenEyesAnimationStarted = false;
    }
}

if your coroutine is called on start it will be called once per object instance, if you are using the same object the routine will not be called again because start is only called one time, you can call the coroutine in the OnEnable method or inside another method, or in a Update using a condition.

If you are using different object instances show us your code.