Error codes and retries

There are 21 codes. Retry only when retryable is true.

Every code has one HTTP status. The list below is the ones people hit first. The errors guide has all 21.

CodeHTTPRetry
invalid_params400no
unsupported_url400no
unauthorized401no
insufficient_credits402no
forbidden403no
private403no
age_restricted403no
not_found404no
transcript_unavailable404no
conflict409no
removed410no
rate_limited429yes
unavailable_in_region451no
internal500yes
upstream_changed502no
upstream_error502yes
upstream_rate_limited503yes
upstream_blocked503yes
overloaded503yes
not_implemented501no
upstream_timeout504yes

not_found, private and removed mean a logged-out visitor cannot see that item. unsupported_url means the URL is the wrong platform or an unrecognised form. invalid_params names the parameter in the message. upstream_changed means the platform response no longer parses. That one is not retryable until it is fixed. not_implemented means the endpoint is declared and not built.

rate_limited is per team, not per key. Wait for retry-after. Spreading the same burst across keys does not raise the limit.

Full detail: Errors.