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
- Authentication and authorization failures — expired tokens, bad credentials, and missing scopes.
AI-assisted analysis of openclaw/openclaw@01804a7531 (2026-08-12).
Data as JSON: /api/errors/6ee15f4f7acc1161.
Report an issue: GitHub.