anthropics / anthropics/claude-code

Cowork cloud egress: WebSocket (wss) hosts refused while ordinary HTTPS to the same service is allowed

Open
#94,355 0 comments 0 reactions 0 assignees View on GitHub
area:cowork area:networking bug platform:web
Dominant language
Python
Stars
145k
Forks
23.1k
PR merge metrics
PR metrics pending

Description

**Surface:** Claude Cowork on the web, cloud sessions, Max plan (individual).
**Setting:** Settings > Capabilities > Allow network egress ON, Domain allowlist = All domains, unchanged.

Since the 10 Sep egress regression on this account (#34690) was partially restored on 14 Sep, ordinary HTTPS works again but **WebSocket endpoints are still refused by the gateway**, including for a service whose HTTPS API is allowed in the same session.

Measured 2026-09-14, 17:2x UTC, one session:

```
https://api.browserbase.com/ 404 (reaches the origin, allowed)
wss://connect.usw2.browserbase.com/ 403 Host not in allowlist: connect.usw2.browserbase.com.
Add this host to your network egress settings to allow access.
```

The Playwright form of the same failure:

```
BrowserType.connect_over_cdp: WebSocket error: wss://connect.usw2.browserbase.com/ 403 Forbidden
- ... 403 Forbidden
- WebSocket was closed before the connection was established
```

**Expected:** with the allowlist set to All domains, a wss host is reachable like any other.

**Actual:** the gateway answers 403 with "Host not in allowlist", naming a host the account's setting does not exclude, while plain HTTPS to arbitrary hosts (www.google.com, example.com, api.openai.com, cdn.jsdelivr.net) succeeds from the same session.

**Impact:** any browser-automation or realtime service driven from a cloud session is dead, because the control channel is a WebSocket even when the REST API is reachable. Sessions can create a remote browser and then cannot attach to it.

**Related, same account, same window:** `pypi.org` and `registry.npmjs.org` return 403 from that session while arbitrary web hosts succeed, which inverts the usual symptom and breaks `pip install` in a cloud session. Details on #34690 (comment 5667492876).

Contributor guide

No contributing guide indexed for this repository

Research direction

No repository file or test is named. Start by reproducing the reported HTTPS and wss:// requests in a cloud session, then read #34690 and comment 5667492876 for the related egress behavior. Done means WebSocket hosts work when the allowlist is set to All domains without breaking ordinary HTTPS or package-registry access.

Written by the indexing model from the issue text.

Assessment

Tech stack
playwright, python
Domain
cloud, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.