When there's an incoming HTTP request with Upgrade header, node intercepts it, leaving no way to respond to it like it was a regular HTTP request. WebSocket spec says to respond with meaningful HTTP codes when upgrade is not possible. There's likely an API missing (or needing to be changed) on the node side.
I realize I can just write to a socket, but it's a workaround.
This will fix by #3036 in v0.9. Closing.