Ok I'v located the problem code, however I have no idea what it's purpose is.

I forgot to include the a portion of the data being returned.... sorry about that.

Inside of the Readers extractData method there is this code

Code:

if (node[clientIdProp]) {
record.internalId = node[clientIdProp];
}

My data set returned has 2 ids, a projectId and a clientId (1 client many projects). initially the internalId is set correctly based on the idProperty value however once it passes over that code, it sees that there is also a 'clientId'?? property on the node and then updates it to that... Which happens to be the same for each of my models being returned because I'm returning a list of data associated with a client...

Removing that property from the json data being returned fixes the issue.

It seems like this property is used internally to track batch changes in the writer. However this seems like a fairly common field name, is there any chance you can rename it to something a little more obscure?