RPC errors · eth_subscribe (WebSocket)

method is not available on free plan / Unsupported subscription: newHeads (eth_subscribe)

What it means

The WebSocket handshake succeeded and ordinary calls like eth_blockNumber work, but the node refuses subscriptions. Free tiers of some providers answer every eth_subscribe with code 35; others reject a specific subscription type. A health check that only reads a block number over WebSocket passes these sockets, which is why they end up in public endpoint lists.

A related failure has no error at all: the subscription is acknowledged and then no heads arrive. We found that on some upstreams too. Always wait for the first notification before treating a subscription as working.

The exact messages, and where we saw them

Returned by real upstream nodes when we triggered this error on 2026-09-24 through our endpoint on each chain we serve.

method is not available on free plan, please upgrade to paid plan
Code 35. Seen on 12 chains: Celo, Fuse, Immutable zkEVM, Kaia, Manta Pacific, Mode, Monad, Polygon zkEVM, Sei, Soneium, Telos EVM, Zora. (direct from the upstream WebSocket, observed 2026-09-24)
Unsupported subscription: newHeads
Code 23. Seen on 2 chains: Kava, Katana.
the method eth_subscribe does not exist/is not available
Seen on 1 chain: Katana.

How to fix it

  • Treat "connected" and "subscribed" as different states: subscribe, and require a notification within a few block times.
  • If your provider gates subscriptions, poll over HTTP (eth_blockNumber / eth_getLogs by range) or use an endpoint that supports them. Our chain pages show whether WebSocket subscriptions currently work on each chain, measured daily.

Related