After reading through all recent posts in this thread, it seems the “Mark as Watched” problem is most likely caused by a mismatch between the viewing time stored locally in Infuse and the progress data returned from Trakt (or possibly iCloud sync).
Several users have described that if you manually mark an episode as watched before it reaches 100 percent, Infuse reverts the status back to partially watched or unwatched after a short time. Watching the episode to the very end usually avoids the issue.
Based on the detailed comments in post #23 and others, the most plausible explanation is that Infuse reports an incomplete runtime to Trakt (for example 24 minutes watched of a 25 minute episode). When Trakt syncs back, Infuse compares its own total runtime against Trakt’s recorded progress, finds a mismatch, and overwrites the local “watched” flag. The same could happen with iCloud sync if the internal record does not exactly match the full duration.
In short, the watched state seems to flip because of an inconsistency between:
-
The playback time Infuse sends to Trakt
-
The theoretical or total length stored in Trakt
-
The local Infuse database that revalidates this information during sync
This would explain why the issue occurs mainly when marking an episode as watched manually or stopping close to the end, and why it happens immediately after a sync refresh.
A good way to verify this theory would be to test the following:
• Watch an episode to the exact end and confirm if it stays marked correctly.
• Stop slightly before the end, mark as watched, and see if it reverts.
• Temporarily disable Trakt or iCloud sync to check if the problem disappears.
• In Trakt, check how many minutes were actually logged compared to the episode’s full runtime.
It would be helpful if Firecore could confirm whether the current logic compares absolute durations rather than just the “watched” flag from Trakt, and if this behavior is intended or a regression introduced with the 8.3 sync update.
This seems like a synchronization edge case rather than a general failure of the “Mark as Watched” function.