base / base/docs

Bug: Public WebSocket RPC endpoints returning 405 / 403 after April 21 maintenance

Open
#1,386 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
337
Forks
792
Avg merge
17h 23m
Merged PRs (30d)
49

Description

Path: /base-chain/api-reference/rpc-overview

**Summary**
All four public Base WebSocket endpoints are rejecting connections since the April 21 RPC migration (incident kd90bdz37xw5). WebSocket handshakes never reach the backend — they are being blocked at the Cloudflare layer.

**Affected endpoints**
- wss://mainnet.base.org
- wss://mainnet-preconf.base.org
- wss://sepolia.base.org
- wss://sepolia-preconf.base.org

**Reproduction**
Reproduced independently using wscat from a MacBook on a residential/client IP:
```
$ wscat -c wss://mainnet.base.org
error: Unexpected server response: 405
```

Also confirmed via curl with a full RFC 6455-compliant WebSocket upgrade request (GET + Upgrade: websocket + Sec-WebSocket-Key headers) — all four endpoints return 405.

Additional testing from a server/datacenter IP returns:
```
HTTP/2 403
x-deny-reason: host_not_allowed
```

**Root cause hypothesis**
Per RFC 6455 §4.1, the WebSocket opening handshake must be an HTTP GET request. The 405 response is being returned before the JSON-RPC layer is reached and before a WebSocket connection is established. The `x-deny-reason: host_not_allowed` header on the 403 variant points to a Cloudflare proxy misconfiguration — WebSocket upgrade passthrough appears to have been dropped during the April 21 node migration.

HTTP RPC (POST) requests to https://mainnet.base.org are unaffected.

**Impact**
- eth_subscribe is completely unavailable on all public endpoints
- The WebSocket code examples in the official docs (e.g. newFlashblocks) are non-functional
- Users are being silently broken with no changelog or deprecation notice

**Expected behavior**
WebSocket connections should complete the upgrade handshake and return HTTP 101 Switching Protocols.

**Request**
Please either restore WebSocket support on the public endpoints or update the docs to reflect that these endpoints are HTTP-only, so users can plan accordingly.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.