Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open
#1,386 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
42/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet

Research direction

Start at /base-chain/api-reference/rpc-overview and inspect the WebSocket examples, then reproduce the reported behavior with wscat or the full curl upgrade request against all four endpoints. Compare the observed 405/403 responses with the expected HTTP 101 handshake and determine whether the documentation or the public endpoint behavior is the required correction.

Written by the indexing model from the issue text.

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.

Dominant language
JavaScript
Stars
337
Forks
798
Avg merge
12h 19m
Merged PRs (30d)
53

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from base/docs

All issues in base/docs

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.