I think it is an ExtJS bug
Indeed, in src/panel/Table.js in lines 2253 and 2254 in reconfigure method, ExtJS does
headerCt.removeAll();
headerCt.add(columns);
nothing wrong here
but if we investigate deeper, in src/grid/header/Container.js in line 787 in onRemove method it does
delete me._usedIDs[c.headerId];
whereas in line 702 in onAdd method, it does
var stateId = c.getStateId();
if (me._usedIDs[stateId] && me._usedIDs[stateId] !== c)
So in my opinion, there is here a problem of consistency with the keys of the cache object _usedIDs. The onRemove method should do
delete me._usedIDs[c.getStateId()];
So I propose to open an issue for ExtJS + the workaround in the attached branch
I think it is an ExtJS bug
Indeed, in src/panel/Table.js in lines 2253 and 2254 in reconfigure method, ExtJS does
nothing wrong here
but if we investigate deeper, in src/grid/header/Container.js in line 787 in onRemove method it does
delete me._usedIDs[c.headerId];
whereas in line 702 in onAdd method, it does
So in my opinion, there is here a problem of consistency with the keys of the cache object _usedIDs. The onRemove method should do
delete me._usedIDs[c.getStateId()];
So I propose to open an issue for ExtJS + the workaround in the attached branch