Skip to content

fix(sync): recover interrupted guest startup - #134

Merged
chrisae9 merged 1 commit into
devfrom
fix/guest-startup-readiness
Oct 21, 2026
Merged

chrisae9 merged 1 commit into
devfrom
fix/guest-startup-readiness

Conversation

@chrisae9

Copy link
Copy Markdown
Owner

Summary

A guest startup can be cancelled after Plex selects the media but before the stream loads. The selected metadata then incorrectly satisfies the “already playing” check, leaving an empty decoder masked as buffering until a browser reload.

Treat masked startup media as not yet playing. When a host state update finds that startup interrupted and no source change running, allow one media retry per room/host/media selection. Successful playback resets the retry allowance. Add cancellation/retry diagnostics without credentials.

Verification

  • Regression harness reproduces cancellation after the Plex decision with zero decoder loads. It fails against the previous implementation and passes with the fix, including unchanged-media deduplication after recovery.
  • A second harness case verifies that active source changes are left alone and repeated host updates permit only one retry.
  • Full server and frontend suites passed: 173 server tests and 649 frontend tests. Production build, lint, expanded fuzz, and required CI are checked before promotion.
  • The original live incident logs show the guest completing its decision request without a subsequent stream request. The stranding/retry defect is reproduced; the initiating cancellation is not conclusively attributed.
  • Repeat live verification will exercise two real Plex players, an interrupted guest startup, recovery, host seeking, and Stop without disturbing other rooms.

@chrisae9
chrisae9 merged commit 2686cb1 into dev Oct 21, 2026
9 checks passed
@chrisae9
chrisae9 deleted the fix/guest-startup-readiness branch October 21, 2026 04:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant