As discussed internally, this issue was related the Theater's throttling function which cause unexpected behavior as sending TimeChanged every ~3000 ms caused core to believe that the user is seeking and my default was using 1000.min(time_difference) where time_difference > 3000, hence the time_watched was wrong and episode wasn't marked as watched.
As discussed internally, this issue was related the Theater's throttling function which cause unexpected behavior as sending TimeChanged every ~3000 ms caused core to believe that the user is seeking and my default was using
1000.min(time_difference)
wheretime_difference > 3000
, hence the time_watched was wrong and episode wasn't marked as watched.