ruvnet/ruflo · error

Upgrade Required - WebSocket connection expected

Error message

Upgrade Required - WebSocket connection expected

What it means

HTTP 426 plain-text response written by the WebSocket transport's start(): any plain HTTP (non-upgrade) request hitting the server is told it must perform a WebSocket upgrade to connect — the server only speaks WebSocket on this port.

Source

Thrown at v3/@claude-flow/mcp/src/transport/websocket.ts:81

    private readonly logger: ILogger,
    private readonly config: WebSocketTransportConfig
  ) {
    super();
  }

  async start(): Promise<void> {
    if (this.running) {
      throw new Error('WebSocket transport already running');
    }

    this.logger.info('Starting WebSocket transport', {
      host: this.config.host,
      port: this.config.port,
      path: this.config.path || '/ws',
    });

    this.server = createServer((req, res) => {
      res.writeHead(426, { 'Content-Type': 'text/plain' });
      res.end('Upgrade Required - WebSocket connection expected');
    });

    this.wss = new WebSocketServer({
      server: this.server,
      path: this.config.path || '/ws',
      maxPayload: this.config.maxMessageSize || 10 * 1024 * 1024,
      perMessageDeflate: true,
    });

    this.setupWebSocketHandlers();
    this.startHeartbeat();

    await new Promise<void>((resolve, reject) => {
      this.server!.listen(this.config.port, this.config.host, () => {
        resolve();
      });
      this.server!.on('error', reject);

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Send a WebSocket upgrade request (Upgrade: websocket header) instead of a plain HTTP request.
  2. Use a WebSocket client to connect to this endpoint; plain HTTP is not supported here.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/@claude-flow/mcp/src/transport/websocket.ts:81 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/bdf66bb75bbe6749. Report an issue: GitHub.