There is a problem with the BufferedRenderer grid's plugin that prevents it from working with data not loaded with a proxy - or at least that's the best way I can summarize it :P

Anyhow, there are 2 scenarios where this can be seen: 1) you directly add records to a store or 2) the store is created dynamically (e.g.) on a hasMany association. Visually the grid will display just a single item and errors will start appearing on the console and the application starts to become instable/buggy.

I've tracked down the problem to the setViewSize method of the BufferedRenderer plugin on the line:
end = Math.min(start + viewSize - 1, store.getTotalCount() - 1);
In that line ExtJs is querying the totalCount for the store, however, stores created as I described above, do not have a totalCount set, only a count.

I believe the best solution would be to change that call to something like (store.getTotalCount() || store.getCount()) but I'm unsure of the impact of a larger scale. Anyhow, here's a test case:

		<LINK href="" rel="stylesheet" type="text/css">
		<script type="text/javascript" src=""></script>
		<script type="text/javascript">

Ext.onReady(function() {
	Ext.define('User', {
		extend: '',
		fields: [{
			name: 'name',
			type: 'string'

	var aCommonStore = window.storeRef = new{
		model: 'User',
		data: [{
			name: 'Foo'
		}, {
			name: 'Bar'

	new Ext.button.Button({
		renderTo: document.body,
		text: 'Create',
		handler: function() {
			new Ext.window.Window({
				autoShow: true,
				layout: 'fit',
				width: 400,
				height: 200,
				items: {
					xtype: 'gridpanel',
					plugins: [{
						ptype: 'bufferedrenderer'
					store: aCommonStore,
					columns: [{
						dataIndex: 'name',
						text: 'Name'