Tach!
Das Problem tritt auf, wenn in der Anwendung 2 Einträge vorliegen und der erste gelöscht wird.
Dein Code arbeitet beim Löschen anders als erwartet. Du solltest dir das Array anschauen, nachdem du einen Eintrag gelöscht hast.
Der Eintrag ist nämlich nicht vollständig weg und damit auch der Index nicht neu vergeben. Eine funktionierende Lösung arbeitet mit splice() statt delete. (Außerdem ist delete keine Funktion sondern ein Operator und braucht keine Klammern um den Operanden.)
dedlfix.