Skip to content

uv publish no longer retries 5xx upload responses #1970

Description

@astral-automations-bot

Run: https://github.com/astral-sh/uv/actions/runs/35356946647
Job: https://github.com/astral-sh/uv/actions/runs/35356946647/job/105640531183

Workflow: CI
Job: test uv publish / Publish test packages
Platform: GitHub-hosted Linux x86_64
Attempt: 1

A fresh pypi-password-env upload failed immediately when TestPyPI returned a transient 503:

Response code for https://test.pypi.org/legacy/: 503 Service Unavailable
error: Failed to publish `dist/astral_test_password-0.20260918144055.521-py3-none-any.whl` to https://test.pypi.org/legacy/
  cause: Server returned status code 503 Service Unavailable.

The log contains one 503 response and no transient-retry message. In the current PublishSession::upload, retry handling is reached only when sending the request returns an error. A completed HTTP 503 response proceeds directly to handle_response and terminates the command.

This regresses the behavior reported in astral-sh#12027 and fixed by astral-sh#12041, which applied the retry strategy to completed 5xx responses. Source comparison indicates that the publishing-session refactor in astral-sh#21440 dropped that response-level retry check.

The triggering change, astral-sh#21821, concerns workspace metadata and does not modify publishing. #1823 is related but only retries idempotent test re-uploads; it does not restore retries for fresh uploads in uv publish.

Activity

  1. astral-automations-bot commented on Sep 30, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv/actions/runs/36746391652

    This occurrence extends the tracked defect to the Linux test / cargo test on linux job: publish::check_keyring_behaviours received TestPyPI's 503 maintenance page on its fourth upload and failed the check_keyring_behaviours-4 snapshot. The triggering astral-sh#22017 changes only workspace metadata.

  2. astral-automations-bot commented on Sep 30, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/36757397708

    Attempt 2 broadens the #1970 sample: username_password_no_longer_supported received 503 on upload, check_keyring_behaviours exhausted three Simple API retries, and no_credentials received 503 from the OIDC audience endpoint during the same TestPyPI outage.

  3. astral-automations-bot commented on Sep 30, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv/actions/runs/36778381391

    Another #1970 sample occurred in the pypi-trusted-publishing-github target, which received TestPyPI's 503 maintenance response during upload. The same run also had actions/setup-python fail the GraalPy 24.1 setup step with Server Error, a hard-failure variant distinct from the success-without-interpreter sample in #787.

  4. astral-automations-bot commented on Oct 2, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/36949664520

    This sample affected Linux and all three Windows shards and broadened the outage to Simple API resolution tests as well as publish uploads and OIDC audience discovery.

  5. astral-automations-bot commented on Oct 2, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/36948400362

  6. astral-automations-bot commented on Oct 2, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/36949664520

    Attempt 2 reproduced the TestPyPI 503 outage across Linux and all three Windows shards, including Simple API resolution, publish uploads, and OIDC audience discovery.

  7. astral-automations-bot commented on Oct 2, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/36950654230

  8. astral-automations-bot commented on Oct 2, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/37016547665

  9. astral-automations-bot commented on Oct 5, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv/actions/runs/36948535575

  10. astral-automations-bot commented on Oct 6, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/37411412356

  11. astral-automations-bot commented on Oct 6, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/37411412356

    Attempt 3 also hit the independent Linux test_cache_invalidation flake tracked by #941: rewriting the mock executable left its ctime unchanged. TestPyPI continued returning 503 across Linux and all three Windows shards.

  12. astral-automations-bot commented on Oct 6, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv/actions/runs/37450150590

    Attempt 1 of https://github.com/astral-sh/uv/actions/runs/37450150590 adds simultaneous macOS, Linux, and all three Windows-shard samples: TestPyPI returned HTTP 503 from upload, OIDC audience, and Simple API endpoints, failing nine distinct tests. Independently, astral-sh#20790 introduced a Hawk visibility violation in ArtifactHashPolicy::validate_download, making this mixed run deterministic overall.

  13. astral-automations-bot commented on Oct 6, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/37453760769

    Run https://github.com/astral-sh/uv-dev/actions/runs/37453760769 attempt 1 reproduced the five-job TestPyPI 503 pattern and independently hit #1783. The Windows ARM64 trampoline cache step consumed 8m06s of its ten-minute budget, leaving approximately 12 seconds for Test committed binaries before the confirmed job timeout.

  14. astral-automations-bot commented on Oct 6, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv/actions/runs/37453739241

    Attempt 1 of https://github.com/astral-sh/uv/actions/runs/37453739241 also failed the Ubuntu test uv publish job before upload: audience retrieval in pypa/gh-action-pypi-publish returned HTTP 503. This adds an HTTP-response variant to the timeout reported in #2139, alongside the known five-job TestPyPI snapshot failure pattern. Job: https://github.com/astral-sh/uv/actions/runs/37453739241/job/112237773893

  15. astral-automations-bot commented on Oct 6, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv/actions/runs/37453739241

  16. astral-automations-bot commented on Oct 6, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv/actions/runs/37453739241

  17. astral-automations-bot commented on Oct 6, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv-dev/actions/runs/37454968926

  18. astral-automations-bot commented on Oct 9, 2026

    @astral-automations-bot
    Author

    Another workflow run encountered this failure: https://github.com/astral-sh/uv/actions/runs/37950447848

    Attempt 1 adds a GitLab HTTP 500 variant to #1970: the first fresh upload failed without retry after approximately 60 seconds of server processing. Job: https://github.com/astral-sh/uv/actions/runs/37950447848/job/113889636450. Independently, #1783 recurred with a successful cache restore: the cache step consumed 8m32s, leaving only 47 seconds for Test committed binaries before the confirmed 10-minute cutoff. Job: https://github.com/astral-sh/uv/actions/runs/37950447848/job/113887851805.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions