Il codice è abbastanza confuso e non è possibile capire quale possa essere l'errore se non eseguendolo e debuggandolo.

Prova a modificare il codice per visualizzare il valore di

currentstep

in modo da capire quanto vale quando si manifesta l'errore e circoscrivere la parte di codice interessata.