Vergessen, den idx in jedem Fall weiterzuzählen. Dadurch konnte es passieren,
das Positionen aus dem Auftrag gelöscht und evtl. Langtexte und Werte der
2. Zeile falsch zugeordnet wurden.
Nachtrag zu:
commit 
7749e0e61e5d431a59e33cf497addf9ad682b8af
Author: Bernd Bleßmann <bernd@kivitendo-premium.de>
Date:   Wed May 15 15:18:21 2019 +0200
    OrderController: nach Speichern hiddens der ids wieder setzen, …
    … falls die Makse nicht neu geladen wird.
       ->val ('[name="orderitem_ids[+]"][value="' . $form_item_id . '"]', $self->order->items_sorted->[$idx]->id)
       ->val ('#item_' . $form_item_id, $self->order->items_sorted->[$idx]->id)
       ->attr('#item_' . $form_item_id, "id", 'item_' . $self->order->items_sorted->[$idx]->id);
+  } continue {
     $idx++;
   }
   $self->js->val('[name="converted_from_orderitems_ids[+]"]', '');