Based on this post, I realized that the grid columns config can be defined as a Ext.grid.header.Container or xtype:'headercontainer'. This was helpful in order to apply defaults to all columns.
However, this variation in column configuration broke the rowexpander plugin on line 101 in the constructor
Code:
grid.columns.unshift(this.getHeaderConfig());
because columns was no longer an array. Changes are highlighted in red:
Code:
constructor: function() {
this.callParent(arguments);
var grid = this.getCmp(),
columns = grid.columns;
...
if (columns instanceof Ext.grid.header.Container){
columns = columns.items.items;
} else {
if (Ext.isObject(columns)){
columns = columns.items;
}
}
columns.unshift(this.getHeaderConfig());
grid.on('afterlayout', this.onGridAfterLayout, this, {single: true});
}//eof constructor