Currently when the add() method is called on a DataSource, if the id, as defined in the Model, is included, then the sync method is called, the data is not persisted to the _pristineData object, and neither the Create nor Update transports are called. This has the effect of not persisting the data and so if the cancel button is pushed on an edit screen, the added object is mysteriously dropped. Please see my post on the kendo forums for a more detailed explanation including demos of the issue. http://www.telerik.com/forums/if-id-is-provided-in-add()-sync-does-not-update-_pristinedata-and-create-update-are-not-invoked I would suggest that anytime the add() method is used, it should be considered a 'new' record, or at least when the id provided does not match with any other id currently in the data array. If it matches a record in the data array, run the Update transport, otherwise, run the Create transport. Simply including a value for the id should not remove the record from ever being persisted.