If a form group contains an control with the type „FormArray“ and you change the order of the controls inside this array, this has no effect on the value of the form group. Elements will still be in the same order like before. You can fix this with calling „getRawValue“ instead, but make sure you eliminate disabled or hidden control values if you do so. getRawValue is made for something else actually. This is just a workaround.