while the logical loop error is fixable, this will not actually fix your problem because the inferred attribute will not be saved when they save their session - typically only values that have been considered to be "user entered" will be saved.
Two different potential approaches for solving your problem:
* write a plugin for web determinations that would set the attribute programmatically - this would be considered by web determinations to be user set and would be persisted through your data adapter.
* incorporate the setting of this value as part of your data adapter. You didn't mention how you were loading and persisting sessions, but it's possible that a similar operation could be performed at that layer.