|
@@ -2842,9 +2842,13 @@ class StateManagerDisk(StateManager):
|
|
for substate in state.get_substates():
|
|
for substate in state.get_substates():
|
|
substate_token = _substate_key(client_token, substate)
|
|
substate_token = _substate_key(client_token, substate)
|
|
|
|
|
|
|
|
+ fresh_instance = await root_state.get_state(substate)
|
|
instance = await self.load_state(substate_token)
|
|
instance = await self.load_state(substate_token)
|
|
- if instance is None:
|
|
|
|
- instance = await root_state.get_state(substate)
|
|
|
|
|
|
+ if instance is not None:
|
|
|
|
+ # Ensure all substates exist, even if they weren't serialized previously.
|
|
|
|
+ instance.substates = fresh_instance.substates
|
|
|
|
+ else:
|
|
|
|
+ instance = fresh_instance
|
|
state.substates[substate.get_name()] = instance
|
|
state.substates[substate.get_name()] = instance
|
|
instance.parent_state = state
|
|
instance.parent_state = state
|
|
|
|
|