[BUG] claude.ai/install.sh returns 403 — Cloudflare challenge blocks Docker/CI installs

Resolved 💬 8 comments Opened Mar 19, 2026 by aa-shalin Closed Mar 19, 2026

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

  1. In any Dockerfile:

``dockerfile
FROM node:20-slim
RUN curl -fsSL https://claude.ai/install.sh | bash
``

  1. docker build .
  2. 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.

View original on GitHub ↗

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