                 self.commissionerDevice = nil
                 self.bluetoothManager.dropConnection(with: connection)
 
-                //TODO: rollback to correct step?
-                self.fail(withReason: .CommissionerNetworkDoesNotMatch, severity: .Fatal)
+
+                self.currentStep = self.currentFlow.index(of: .GetCommissionerDeviceInfo)!
+                self.pause = false
+
+                self.fail(withReason: .CommissionerNetworkDoesNotMatch)
             }
         }
     }

                break


            case .ConnectToTargetDevice,
                    .ConnectToCommissionerDevice,
                    .EnsureLatestFirmware,
                    .EnsureTargetDeviceCanBeClaimed,

    }

    func retryLastAction() {
        self.log("Retrying action: \(self.currentCommand)")
        switch self.currentCommand {
            //this should never happen
            case .ChooseFlow,
                    .OfferToAddOneMoreDevice,
                    .ShowInfo,
                    .ChooseSubflow,
