Stop the crossfade preload retry storm on a refused embed - #86
Merged
Conversation
preloadNext only skipped a video if it was already cued or mid attempt — a standby onError (e.g. code 150/101, the video owner disallows embedded players) clears both, so the crossfade ticker called preloadNext with the same id again ~250ms later. Same doomed embed, same error, on repeat: one video in the wild logged thirty of these across 13 seconds before the crossfade deadline forced a real load and the error finally reached the user. The restriction is a property of the video, not a transient hiccup, so there is no retry to protect: remember the id an onError just failed and skip it on the next preload call.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partial fix for #77 — the retry-storm cleanup only
AudioEngine.preloadNextonly skipped a video if it was already cued or mid-attempt. A standbyonError(e.g. code 150/101 — the video owner disallows embedded players) clears both, so the crossfade ticker calledpreloadNextwith the same id again ~250ms later. Same embed, same restriction, same error: one video in a user's log hit this thirty times across 13 seconds before the crossfade deadline forced a real load and the error finally reached them.The restriction is a property of the video, not a transient hiccup, so there's no retry worth protecting — this just remembers the id an
onErrorlast failed and skips it on the next preload call.Ref #77