Skip to content

fix(qobuz): auto-refetch app id/secrets on stale credential error - #1031

Open
karolyi wants to merge 1 commit into
nathom:devfrom
karolyi:dev
Open

fix(qobuz): auto-refetch app id/secrets on stale credential error#1031
karolyi wants to merge 1 commit into
nathom:devfrom
karolyi:dev

Conversation

@karolyi

@karolyi karolyi commented Aug 29, 2026

Copy link
Copy Markdown

Qobuz periodically rotates its app secret. A stale app_id/secret pair (hardcoded in the config, or cached from a previous run) still passes the lenient user/login check but fails secret validation against track/getFileUrl with a 400, surfacing as InvalidAppSecretError (or InvalidAppIdError) and a hard login failure.

login() now splits into _attempt_login() and _refresh_app_id_and_secrets(). On InvalidAppIdError/InvalidAppSecretError it refetches a fresh pair from the web bundle, persists it to the config file, and retries once, so a secret rotation self-heals on the next run even when app_id/secrets are pinned in the config.

Also relax the Pillow constraint to ">=9".

Qobuz periodically rotates its app secret. A stale app_id/secret pair
(hardcoded in the config, or cached from a previous run) still passes the
lenient user/login check but fails secret validation against
track/getFileUrl with a 400, surfacing as InvalidAppSecretError (or
InvalidAppIdError) and a hard login failure.

login() now splits into _attempt_login() and _refresh_app_id_and_secrets().
On InvalidAppIdError/InvalidAppSecretError it refetches a fresh pair from
the web bundle, persists it to the config file, and retries once, so a
secret rotation self-heals on the next run even when app_id/secrets are
pinned in the config.

Also relax the Pillow constraint to ">=9".
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