Function: isRetryableErrno()
function isRetryableErrno(errno: number | undefined): boolean;
Defined in: packages/player/src/errors.ts:258
Whether a bare MPV_ERROR_* number describes a condition that could clear on
its own — the code: 'mpv' half of Retryable.
Parameters
| Parameter | Type | Description |
|---|---|---|
errno | number | undefined | The mpv error number, or undefined when the failure carried none (an untagged native throw). undefined is false: an error this layer could not even attribute to mpv is not evidence of a transient condition. |
Returns
boolean
Remarks
The table is short because almost every MPV_ERROR_* is a statement about
the call, not about the world — a bad option name, a property that does not
exist, a malformed command. Repeating those runs the same code with the same
arguments and reaches the same line of mpv.
| errno | MPV_ERROR_* | retryable | reasoning |
|---|---|---|---|
| -14 | AO_INIT_FAILED | true | the audio device is a shared, exclusive resource. A phone call, another app taking exclusive output, or a route change landing mid-open makes the same open fail now and succeed a moment later. This is the one mpv errno whose cause is outside the process. |
| -1 … -12 | EVENT_QUEUE_FULL … COMMAND | false | all argument/state faults: the same call fails identically |
| -13, -16 | LOADING_FAILED, NOTHING_TO_PLAY | n/a | never reach here — fromErrno maps them to network/load-failed first |
| -15 | VO_INIT_FAILED | false | the audio core never opens a video output (vid=no), so this cannot be a transient device race the way -14 is |
| -17 | UNKNOWN_FORMAT | n/a | mapped to unsupported-format |
| -18, -19 | UNSUPPORTED, NOT_IMPLEMENTED | n/a | mapped to unsupported |
| -20 | GENERIC | false | mpv's catch-all. "Unclassified" is not "transient", and guessing otherwise would make every unknown failure retry twice |
Anything mpv adds in a future release falls to false for the same reason as
GENERIC: an unknown condition is not evidence of a recoverable one.