         let previousConfigure = configure
         configure = { [unowned self] _op in
             let op = previousConfigure?(_op) ?? _op
-            op.query = self.operation.query
-            op.cursor = self.operation.cursor
-            op.zoneID = self.operation.zoneID
-            op.recordFetchedBlock = self.operation.recordFetchedBlock
+            op.query = self.query
+            op.cursor = self.cursor
+            op.zoneID = self.zoneID
+            op.desiredKeys = self.desiredKeys
+            op.resultsLimit = self.resultsLimit
+            op.recordFetchedBlock = self.recordFetchedBlock
             op.queryCompletionBlock = { cursor, error in
                 if let error = error {
                     self.receivedError(error)

        let previousConfigure = configure
        configure = { [unowned self] _op in
            let op = previousConfigure?(_op) ?? _op
            op.notificationIDs = self.operation.notificationIDs
            op.markNotificationsReadCompletionBlock = { notificationIDs, error in
                if let error = error {
                    self.receivedError(error)

        let previousConfigure = configure
        configure = { [unowned self] _op in
            let op = previousConfigure?(_op) ?? _op
            op.subscriptionIDs = self.subscriptionIDs
            op.fetchSubscriptionCompletionBlock = { subscriptionsByID, error in
                if let error = error {
                    self.receivedError(error)
