dshackle's WS head subscription hit the RPC root (got HTTP 200, not a WS upgrade). Set client_ws_path=/websocket -> rpc-client.yml emits the avalanche-style priority-100 WS router (Header Upgrade:websocket -> replacepath /websocket) so WS reaches CometBFT's /websocket. RPC router unchanged (stripprefix -> root). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>