Authoritative server sends state of multiple, but not all, entities periodically.
Client receives and re-simulates all entities from server's state, or locally saved states if entity is not included in update.
Now imagine short-lived entities on the client.
An entity is created at time 1 and destroyed at time 3.
At time 4 an update arrives, with info on time 2, and the client rolls back to time 2, in order to re-simulate from time 2 to 4.
The update did not include the already destroyed entity, but may include entities affected by it.
There are no locally saved states for the destroyed entity anymore, because it's destroyed.
The re-simulation would diverge because the destroyed entity is gone and will not be able to affect other entities in re-simulation.
I am thinking of some kind of zombie-mode for entities, which wouldn't be easy to integrate to the used ECS, to keep them around for eventual revive for rollbacks/resims.
Or keeping entity-states outside of entities, and recreate destroyed entities when rolling back past the time of their destruction.
Or not allowing rollback past destruction, which isn't a real solution.
It seems to me i cannot completely avoid this problem, and all solutions i can think of are kind of cumbersome.
What to do in such a case? Surely there has to be some obvious, easy and performant solution i just did not think of ...