openclaw/openclaw · error · Error

relay did not negotiate Browser Relay Authentication v2

Error message

relay did not negotiate Browser Relay Authentication v2

What it means

Error "relay did not negotiate Browser Relay Authentication v2" thrown in openclaw/openclaw.

Source

Thrown at extensions/browser/chrome-extension/modules/relay-connection.js:30

  isCurrent,
  onAuthenticated,
  onApplicationMessage,
  onAuthenticationFailure,
  onClose,
}) {
  const authClientPromise = createExtensionRelayAuthClient({ token, relayUrl });
  const ws = new WebSocket(relayUrl, buildRelayWsProtocols());
  let authenticated = false;

  ws.addEventListener("open", () => {
    void (async () => {
      try {
        if (!isCurrent(ws)) {
          ws.close();
          return;
        }
        if (ws.protocol !== EXTENSION_RELAY_V2_PROTOCOL) {
          throw new Error("relay did not negotiate Browser Relay Authentication v2");
        }
        const authClient = await authClientPromise;
        ws.send(JSON.stringify(authClient.start()));
      } catch (error) {
        onAuthenticationFailure(ws, error);
      }
    })();
  });

  let messageChain = Promise.resolve();
  ws.addEventListener("message", (event) => {
    messageChain = messageChain.then(async () => {
      try {
        if (!isCurrent(ws)) {
          return;
        }
        const raw = String(event.data);
        if (authenticated) {

View on GitHub (pinned to 01804a7531)

When it happens

Trigger: Thrown at extensions/browser/chrome-extension/modules/relay-connection.js:30 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of openclaw/openclaw@01804a7531 (2026-08-12). Data as JSON: /api/errors/6ee15f4f7acc1161. Report an issue: GitHub.