[BUG] claude.ai/install.sh returns 403 — Cloudflare challenge blocks Docker/CI installs
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
https://claude.ai/install.sh returns HTTP 403 when fetched from Docker builds or CI environments (GitHub Actions). Cloudflare is serving a browser challenge instead of the install script, making the documented install method unusable in automated environments.
What Should Happen?
curl -fsSL https://claude.ai/install.sh | bash should work in non-interactive environments (Docker builds, GitHub Actions, CI pipelines) as documented.
Error Messages/Logs
$ curl -fsSL https://claude.ai/install.sh | bash
curl: (22) The requested URL returned error: 403
$ curl -sI https://claude.ai/install.sh
HTTP/2 403
cf-mitigated: challenge
content-type: text/html; charset=UTF-8
Steps to Reproduce
- In any Dockerfile:
``dockerfile``
FROM node:20-slim
RUN curl -fsSL https://claude.ai/install.sh | bash
docker build .- Build fails at the curl step with exit code 22 (HTTP 403)
Same issue from GitHub Actions runners and any non-browser curl request.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Unknown — worked before Cloudflare challenge was enabled on claude.ai
Claude Code Version
1.0.202 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Non-interactive/CI environment
Additional Information
Response headers confirm Cloudflare challenge mitigation:
cf-mitigated: challenge
accept-ch: Sec-CH-UA-Bitness, Sec-CH-UA-Arch, ...
Workaround: Install via npm instead: npm install -g @anthropic-ai/claude-code
This is impacting our Docker builds in GitHub Actions. The Cloudflare WAF rule appears to not distinguish automated installs from bot traffic.
8 Comments
@claude can you address this?
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
This isn't a duplicate. It doesn't have anything to do with auth.
Seeing this as well on github actions - potential workaround may be installing claude code via brew, but would strongly prefer to continue using the current
https://claude.ai/install.shapproach if possibleGithub actions are failing:
This works
curl -fsSL https://downloads.claude.ai/claude-code-releases/bootstrap.sh | bashThanks for the report, this should be fixed now.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.