Remote Control: session creation fails — claude.ai serves Cloudflare challenge (cf-mitigated: challenge) to datacenter server IPs

Status Open
Reported on v2.1.212
Maintainer reply None cached
Activity 0 comments · opened Jul 17, 2026

Summary

Remote Control cannot start on a Linux server: every attempt (both remoteControlAtStartup: true and manual start) fails with the banner "Remote Control error: Session creation failed — see debug log". Root cause appears to be that claude.ai's Cloudflare edge is bot-challenging the server's IP, so the CLI's session-creation request never reaches the application.

Evidence

From the affected machine:

$ curl -s -D - https://claude.ai/api/organizations -o body.html | grep -iE "HTTP/|cf-mitigated|server:"
HTTP/2 403
cf-mitigated: challenge
server: cloudflare
cf-ray: a1cae89cca9d4e03-MCI

Body is the Cloudflare "Just a moment…" browser-challenge page — unsolvable by a headless CLI.

Meanwhile the API host is fine from the same machine:

$ curl -s -o /dev/null -w "%{http_code}\n" https://api.anthropic.com/api/hello
200

So inference, MCP connectors, and normal CLI operation all work — only claude.ai-backed features (Remote Control session creation) fail.

Environment

  • Claude Code VS Code extension 2.1.212 (linux-x64), Linux 6.8.0-117-generic (Ubuntu), datacenter-hosted VPS
  • Auth: claude.ai OAuth, Max 5x subscription; token includes user:sessions:claude_code scope and is unexpired
  • No managed settings; disableRemoteControl not set; remoteControlAtStartup: true
  • Reproduces consistently over multiple hours (retested — still cf-mitigated: challenge)

Expected

The Remote Control bridge should be able to create its session from a headless server — either by routing session creation through an API host not subject to browser bot-challenges, or by allowlisting the CLI's traffic signature at the claude.ai edge.

Impact

Remote Control is unusable from datacenter/VPS-hosted development servers — which are exactly the always-on machines where remote control of long-running sessions is most useful.

View original on GitHub ↗