To load the next level and reload the current level upon failure, I turned the sceneIndex into a parameter that reads the level index every time.
private void loadLevel(int sceneIndex)
{
Scene scene = SceneManager.GetActiveScene();
currentSceneIndex = scene.buildIndex;
SceneManager.LoadSceneAsync(sceneIndex); //Async is preferable, needs an index int
}
Is this ok?