We have noticed that dataSources can drop rows in a few scenarios. After parsing the data from the server while it's inserting stuff into the dataSource._ranges[] array you can notice that not all of the rows that were received by dataSource:parse() and dataSource:data() are available in the ranges.
If the data response size is less than the pageSize() value then the grid has problems scrolling and paging, and upon scrolling, the dataSource() will continually request (page 1) and (page 2) over an over again.
If the data response size is larger than the pageSize() it might work, but we are unsure. We have also noticed that if the data response size is 2x the pageSize() then we are more likely to have an issue with data finding it's way in the ranges.
The server is aggregating data from several services and it's hard to predict the number of records that will be returned.
Should kendo support server responses that have more or less data than the page size suggests?