Skip to content

Stop the crossfade preload retry storm on a refused embed - #86

Merged
noFAYZ merged 1 commit into
mainfrom
fix/iframe-preload-retry-storm
Aug 13, 2026
Merged

Stop the crossfade preload retry storm on a refused embed#86
noFAYZ merged 1 commit into
mainfrom
fix/iframe-preload-retry-storm

Conversation

@noFAYZ

@noFAYZ noFAYZ commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Partial fix for #77 — the retry-storm cleanup only

AudioEngine.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 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 onError last failed and skips it on the next preload call.

Ref #77

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.
@vercel

vercel Bot commented Aug 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zuno Ready Ready Preview Aug 13, 2026 7:50am

@noFAYZ
noFAYZ merged commit 4692ae9 into main Aug 13, 2026
10 checks passed
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