{"record":{"id":"bdf66bb75bbe6749","repo":"ruvnet/ruflo","slug":"upgrade-required-websocket-connection-expected","errorCode":null,"errorMessage":"Upgrade Required - WebSocket connection expected","messagePattern":"Upgrade Required - WebSocket connection expected","errorType":"http","errorClass":null,"httpStatus":426,"severity":"error","filePath":"v3/@claude-flow/mcp/src/transport/websocket.ts","lineNumber":81,"sourceCode":"    private readonly logger: ILogger,\n    private readonly config: WebSocketTransportConfig\n  ) {\n    super();\n  }\n\n  async start(): Promise<void> {\n    if (this.running) {\n      throw new Error('WebSocket transport already running');\n    }\n\n    this.logger.info('Starting WebSocket transport', {\n      host: this.config.host,\n      port: this.config.port,\n      path: this.config.path || '/ws',\n    });\n\n    this.server = createServer((req, res) => {\n      res.writeHead(426, { 'Content-Type': 'text/plain' });\n      res.end('Upgrade Required - WebSocket connection expected');\n    });\n\n    this.wss = new WebSocketServer({\n      server: this.server,\n      path: this.config.path || '/ws',\n      maxPayload: this.config.maxMessageSize || 10 * 1024 * 1024,\n      perMessageDeflate: true,\n    });\n\n    this.setupWebSocketHandlers();\n    this.startHeartbeat();\n\n    await new Promise<void>((resolve, reject) => {\n      this.server!.listen(this.config.port, this.config.host, () => {\n        resolve();\n      });\n      this.server!.on('error', reject);","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/mcp/src/transport/websocket.ts#L63-L99","documentation":"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.","triggerScenarios":"Thrown at v3/@claude-flow/mcp/src/transport/websocket.ts:81 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Send a WebSocket upgrade request (Upgrade: websocket header) instead of a plain HTTP request.","Use a WebSocket client to connect to this endpoint; plain HTTP is not supported here."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}