[BUG] Cloud environment setup script <code>uv self update</code> fails repeatedly with GitHub API rate limit

Resolved 💬 2 comments Opened Apr 24, 2026 by CorVous Closed May 28, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When my cloud environment setup script runs uv self update, it fails with a GitHub API rate limit error, preventing the session from starting. I hit this 5 times in a row around 11:20am PST, so it's not a one-off.

Setup script failed with exit code 2.
Script output: info: Checking for updates...
error: GitHub API rate limit exceeded. Please provide a GitHub token via the `--token` option.
Edit your environment's setup script and start a new session.

uv self update queries the GitHub Releases API to check for newer versions. Unauthenticated requests to that API are limited to 60/hour per source IP. Claude Code's cloud environment appears to either share egress IPs across users, or retries of the setup script from the same session quickly burn through the 60/hour budget — either way, users hit this wall with no way to self-recover beyond adding their own token.

What Should Happen?

Either:

  1. The cloud environment provides an authenticated GITHUB_TOKEN by default for outbound GitHub API calls made from setup scripts (scoped read-only), eliminating the rate limit issue, or
  2. The documentation for cloud environment setup scripts explicitly warns that tools calling the GitHub API (uv self update, gh, release-checking installers, etc.) will hit rate limits and recommends users set GITHUB_TOKEN in Custom Environment variables, or
  3. The default base image ships with a recent uv so users don't need to self-update at session start.

Error Messages/Logs

Steps to Reproduce

  1. Open the Claude desktop app and start a cloud environment session.
  2. In the environment setup script, include:

``bash
uv self update
``

  1. Start a new session.
  2. Setup fails with exit code 2 and the error above. In my case, this failed 5 consecutive times within a short window around 11:20am PST.

Claude Model

Sonnet (default)

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

Claude 1.3883.0 (93ff6c), build 2026-04-21T17:24:01.000Z

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Workarounds I Tried

| Workaround | Result |
|---|---|
| Remove uv self update, use curl -LsSf https://astral.sh/uv/install.sh \| sh instead | curl: (22) The requested URL returned error: 403astral.sh is not on the default sandbox network allowlist |
| Set GITHUB_TOKEN in Custom Environment variables | Works — uv self update authenticates and the rate limit jumps from 60/hr to 5,000/hr. This should arguably be the documented solution. |
| pip install --upgrade uv | Works, but the PyPI-published uv version sometimes lags the standalone release |

Environment

  • Product: Claude Code cloud environment (Claude desktop app)
  • Setup script: contains uv self update
  • Time of failure: ~11:20am PST, failed 5 consecutive times
  • OS: macOS
  • Desktop app version: Claude 1.3883.0 (93ff6c), build 2026-04-21T17:24:01.000Z
  • Plan: Max 20x

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗