...can't be deleted
EntityGroups.prototype.removeEnt@gui/session/selection.js:88:2
EntityGroupsContainer.prototype.update@gui/session/selection.js:496:5
updateGroups@gui/session/session.js:672:2
updateGUIObjects@gui/session/session.js:657:2
onSimulationUpdate@gui/session/session.js:629:2
__eventhandler56 (simulationupdate)@session simulationupdate:0:1
```
From the replay file we can see that quickloading was used, from which one can derive how to reproduce the error:
1. starts singleplayer match
2. select an entity
3. cltr+1 to assign it to a control group
4. shift+F5 to perform quicksave
5. shift+F8 to perform quickload
6. delete that entity
Consequently the error was introduced by rP22922 providing an immutable JS object whose ownership was taken over in `session.js` `restoreSavedGameData` in `g_Groups.groups[groupNumber].groups = data.groups[groupNumber].groups;`.
Notice that the freezing of the object is not the mistake but the benefit. Since if the freezing wouldn't have been there, the error message wouldn't have appeared, and the savestate would have changed merely by loading and resuming the match. The error was not providing a copy in JS or C++.