Skip to content

fix: return 504 instead of RepoNotFound 401 when upstream is unreachable - #62

Open
bo0tzz wants to merge 1 commit into
vtuber-plan:mainfrom
bo0tzz:fix/transport-error-not-repo-404
Open

fix: return 504 instead of RepoNotFound 401 when upstream is unreachable#62
bo0tzz wants to merge 1 commit into
vtuber-plan:mainfrom
bo0tzz:fix/transport-error-not-repo-404

Conversation

@bo0tzz

@bo0tzz bo0tzz commented Jul 16, 2026

Copy link
Copy Markdown

check_commit_hf treated any transport failure (connect error, timeout, DNS hiccup) as "repo does not exist", which the routes turned into error_repo_not_found() — an HTTP 401 that huggingface_hub maps to the non-retryable RepositoryNotFoundError. Under parallel CI load a single failed upstream HEAD therefore hard-failed a whole download, while the repo was perfectly fine.

check_commit_hf now returns a tri-state: True (exists), False (upstream rejected with a non-5xx status), None (unreachable or 5xx). The tenacity retry, previously dead code because the exception was swallowed before it could fire, now retries the None case. Callers map None to error_proxy_timeout() (504) so clients retry, and a failed commit-sha lookup after successful existence checks is likewise a 504 rather than a phantom "repo not found".

check_commit_hf treated any transport failure (connect error, timeout,
DNS hiccup) as "repo does not exist", which the routes turned into
error_repo_not_found() — an HTTP 401 that huggingface_hub maps to the
non-retryable RepositoryNotFoundError. Under parallel CI load a single
failed upstream HEAD therefore hard-failed a whole download, while the
repo was perfectly fine.

check_commit_hf now returns a tri-state: True (exists), False (upstream
rejected with a non-5xx status), None (unreachable or 5xx). The tenacity
retry, previously dead code because the exception was swallowed before
it could fire, now retries the None case. Callers map None to
error_proxy_timeout() (504) so clients retry, and a failed commit-sha
lookup after successful existence checks is likewise a 504 rather than
a phantom "repo not found".
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