Describe the bug
There are two critical regressions severely impacting the core video playback experience and user retention metrics on the platform. Both relate to unhandled state management and context dropping within the video player component:
Clip-to-VOD Timestamp Routing Failure: When transitioning from a clip to its source VOD via the "Watch Full Video" / "Continue Watching" CTA, the player drops the chronological context. Instead of passing the temporal state (e.g., current_time of the clip) to the VOD's URL query parameters or player initialization state, the VOD abruptly defaults to 00:00:00.
Player Re-initialization on Window Resize: Triggering a viewport resize event (e.g., shrinking or maximizing the browser tab) forces the video player component to completely unmount and remount, clearing the current playback state. This results in the clip resetting to the beginning, creating a highly disruptive and frustrating UX.
To Reproduce
Issue 1: Clip-to-VOD Context Drop
Navigate to any clip on Kick.com (e.g., a 60-second clip).
Allow playback to reach the final 5–10 seconds.
Click the "Watch Full Video" or "Continue Watching" CTA.
Observe that the source VOD loads at timestamp 00:00:00 instead of the expected timecode corresponding to the clip's termination point.
Issue 2: Resize State Unmount
Initialize playback on any clip.
Allow the video to play for an arbitrary duration (e.g., 15 seconds).
Resize the browser window (triggering a resize event) or snap the window to a split-screen layout.
Observe that the player UI flashes, component state is flushed, and the clip restarts from 00:00:00.
Expected behavior
For Issue 1: The "Watch Full Video" CTA should capture the current timestamp of the clip, map it to the corresponding global timestamp of the parent VOD, and append it as a query parameter (e.g., ?t=XXs) or pass it via state to ensure a seamless continuation of the viewing session.
For Issue 2: The video player component should be detached from viewport sizing constraints in a way that prevents forced remounting. Playback state (currentTime, isPlaying) must persist across CSS media query breakpoints and window resize events
Desktop (please complete the following information):
- OS: Windows 11 - Browser- tested on multiple browser, Chrome, Brave
- Version Chrome 124.0.6367.118, Firefox 125.0.3
Additional context
Severity: CRITICAL / P1
These are major blockers for user engagement and session duration. The resize bug suggests a fundamental flaw in the React/Vue component lifecycle hooks handling the player wrapper, likely a missing dependency array or improper state lifting where viewport dimensions dictate the player's render cycle. The clip-to-VOD routing bug breaks the core discoverability pipeline, actively discouraging viewers from converting from short-form clips to long-form VOD retention. Immediate hotfix recommended to patch the component unmounting behavior
Describe the bug
There are two critical regressions severely impacting the core video playback experience and user retention metrics on the platform. Both relate to unhandled state management and context dropping within the video player component:
Clip-to-VOD Timestamp Routing Failure: When transitioning from a clip to its source VOD via the "Watch Full Video" / "Continue Watching" CTA, the player drops the chronological context. Instead of passing the temporal state (e.g., current_time of the clip) to the VOD's URL query parameters or player initialization state, the VOD abruptly defaults to 00:00:00.
Player Re-initialization on Window Resize: Triggering a viewport resize event (e.g., shrinking or maximizing the browser tab) forces the video player component to completely unmount and remount, clearing the current playback state. This results in the clip resetting to the beginning, creating a highly disruptive and frustrating UX.
To Reproduce
Issue 1: Clip-to-VOD Context Drop
Navigate to any clip on Kick.com (e.g., a 60-second clip).
Allow playback to reach the final 5–10 seconds.
Click the "Watch Full Video" or "Continue Watching" CTA.
Observe that the source VOD loads at timestamp 00:00:00 instead of the expected timecode corresponding to the clip's termination point.
Issue 2: Resize State Unmount
Initialize playback on any clip.
Allow the video to play for an arbitrary duration (e.g., 15 seconds).
Resize the browser window (triggering a resize event) or snap the window to a split-screen layout.
Observe that the player UI flashes, component state is flushed, and the clip restarts from 00:00:00.
Expected behavior
For Issue 1: The "Watch Full Video" CTA should capture the current timestamp of the clip, map it to the corresponding global timestamp of the parent VOD, and append it as a query parameter (e.g., ?t=XXs) or pass it via state to ensure a seamless continuation of the viewing session.
For Issue 2: The video player component should be detached from viewport sizing constraints in a way that prevents forced remounting. Playback state (currentTime, isPlaying) must persist across CSS media query breakpoints and window resize events
Desktop (please complete the following information):
Additional context
Severity: CRITICAL / P1
These are major blockers for user engagement and session duration. The resize bug suggests a fundamental flaw in the React/Vue component lifecycle hooks handling the player wrapper, likely a missing dependency array or improper state lifting where viewport dimensions dictate the player's render cycle. The clip-to-VOD routing bug breaks the core discoverability pipeline, actively discouraging viewers from converting from short-form clips to long-form VOD retention. Immediate hotfix recommended to patch the component unmounting behavior