paperclipai/paperclip · error · ProtocolError

unsupported_version

unsupported_version

Error message

unsupported protocol version: ${String(obj.v)}

What it means

Version handshake in decodeRequest: the request's `v` field does not equal BROKER_PROTOCOL_VERSION. ProtocolError('unsupported_version') fires before any operation handling — the client and broker speak different protocol revisions and cannot proceed safely.

Source

Thrown at packages/tailscale-https-broker/src/protocol.ts:101

  }
  if (buf.byteLength > MAX_REQUEST_BYTES) {
    throw new ProtocolError("malformed_request", "request frame exceeds size limit");
  }

  let parsed: unknown;
  try {
    parsed = parseJsonNoDuplicateKeys(buf.toString("utf8"));
  } catch (error) {
    throw new ProtocolError(
      "malformed_request",
      `invalid JSON: ${(error as Error).message}`,
    );
  }

  const obj = asObject(parsed);

  if (obj.v !== BROKER_PROTOCOL_VERSION) {
    throw new ProtocolError(
      "unsupported_version",
      `unsupported protocol version: ${String(obj.v)}`,
    );
  }

  const requestId = requireStringField(obj, "requestId", REQUEST_ID_RE, "malformed_request", null);

  const op = obj.op;
  if (op !== "reserve" && op !== "expose" && op !== "remove" && op !== "list") {
    throw new ProtocolError("unknown_operation", `unknown operation: ${String(op)}`, requestId);
  }

  if (op === "list") {
    assertExactKeys(obj, ["v", "op", "requestId"], requestId);
    return { op: "list", requestId };
  }

  if (op === "remove" || op === "expose") {

View on GitHub (pinned to 120ae5428f)

Solutions

  1. Use a protocol version supported by this broker; upgrade the client or broker so versions match.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/tailscale-https-broker/src/protocol.ts:101 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18). Data as JSON: /api/errors/3fa923e691c664ed. Report an issue: GitHub.