ruvnet/ruflo · error

-32600

-32600

Error message

Invalid JSON-RPC version

What it means

handleHttpRequest() parsed the body and found message.jsonrpc !== '2.0'. Malformed-request guard (JSON-RPC -32600): the client sent a payload that is not a valid 2.0 JSON-RPC request (wrong version field or a non-RPC body routed here), so it is rejected before method dispatch.

Source

Thrown at v3/@claude-flow/mcp/src/transport/http.ts:429

          ip: req.ip,
          path: req.path,
          error: authResult.error,
        });
        res.status(401).json({
          jsonrpc: '2.0',
          id: null,
          error: { code: -32001, message: 'Unauthorized' },
        });
        return;
      }
    } else if (requiresAuth && !this.config.auth) {
      this.logger.warn('No authentication configured - running in development mode');
    }

    const message = req.body;

    if (message.jsonrpc !== '2.0') {
      res.status(400).json({
        jsonrpc: '2.0',
        id: message.id || null,
        error: { code: -32600, message: 'Invalid JSON-RPC version' },
      });
      return;
    }

    if (!message.method) {
      res.status(400).json({
        jsonrpc: '2.0',
        id: message.id || null,
        error: { code: -32600, message: 'Missing method' },
      });
      return;
    }

    const sseSessionId = typeof req.query.sessionId === 'string' ? req.query.sessionId : undefined;
    const sseResponse = sseSessionId ? this.sseClients.get(sseSessionId) : undefined;

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Set the JSON-RPC version field to "2.0" in the request payload.
  2. Validate the request against the JSON-RPC 2.0 schema before sending.
Defensive patterns

Strategy: validation

When it happens

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

Common situations: See trigger scenarios.

Understand the failure class


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