Resilience
Retry, silent reload, the branded slate, and telemetry.
Live streams fail. The player's job is to keep the viewer watching when the failure is transient, and to degrade honestly when it is not.
The escalation ladder
- Retry — recoverable errors are retried in place by the engine.
- Silent reload — on a fatal error, the player tears the engine down and reloads the stream without user interaction, keeping the UI stable.
- Slate — when the stream is genuinely down (auto-retry and silent reload both failed), a branded full-screen graphic is shown as a last resort. The slate is distinct from the poster shown before playback begins.
Telemetry
Fatal errors and startup failures report through onTelemetry so operations can see
outages. Recoverable errors that retry in place are not sent to this sink:
startup_failure— playback never beganfatal_error— the stream died mid-play
Both carry the normalized PlayerError. reloadAttempt is the 1-based silent-reload
attempt that will follow, or 0 when no reload is scheduled because the budget is
exhausted.
Try it
In the demo, press Simulate outage — it points the player at an unresolvable URL, so you can watch retry → silent reload → slate happen, with each stage logged in the telemetry panel.