First scene loads twice

I’m slowly going insane trying to get my head around the SceneManager.

I have a small basic unity game with a total of 6 scenes. The build order is as follows;

0- MainMenu // Click NewGame to start Level_01.
1- Level_01
2- Level_02
3- Level_03
4- YouWin // This should trigger when player completes last level.
5- YouLose // This triggers when player runs out of time.

However when playing, the scenes load in this order;

0- MainMenu
1- Level_01
2- Level_01 // Repeats Level_01
3 - Level_02
4- YouWin // Never reaches Level_03

I have checked and double checked the build order and that does not appear to be the problem. I am relatively new to unity and coding in general and I have been trying to fix this for days and seem to be getting nowhere. Any help would be appreciated.

Here is the GameManager code:

public class GameManager: MonoBehaviour{

public static int currentScore;
public static int highscore;
public static int currentLevel;

public float startTime;
private string currentTime;

void Update()

    startTime -= Time.deltaTime;
    currentTime = string.Format("{0:0.0}", startTime);
    if (startTime <= 0)
        startTime = 0;
        //this loads the time out screen if timer reaches 0

public static void CompleteLevel()
     if (currentLevel < 4)
         //this loads levels in sequence
         SceneManager.LoadScene(currentLevel += 1);

     } else {

         //this is the win settings
         print("You win");

This is the MainMenu code:

public class MainMenu3 : MonoBehaviour{

// Loads the levels from clicking (needed for both MainMenu and YouLose scenes)
public void LoadScene(string name) {

    SceneManager.LoadScene(name); }

//this quits the game
public void QuitGame() { 


This is code for triggering next scene when reaching goal:

public class PlayerController2 : MonoBehaviour{

private Rigidbody rb;

void Start ()

    rb = GetComponent<Rigidbody>();


void OnTriggerEnter (Collider other)
    if (other.transform.tag == "Goal")

Any help at all would be hugely appreciated!
Thanks for reading.

*Edit: cleaned up code to make it easier to read


finally found a fix in the end!

needed to use:

if (currentLevel < 4)
currentLevel = SceneManager.GetActiveScene().buildIndex+1;