Bug Description
Claw3D v0.1.0 cannot connect to OpenClaw gateway 2026.3.11. The gateway rejects the WebSocket connection.
Error
Gateway closed (1012): upstream closed
Gateway Logs
Two types of failures observed:
- Without token:
cause: "device-required" — gateway expects device identity (key pair + signature), Claw3D sends client: "openclaw-control-ui" without device auth
- With token:
cause: "unauthorized", authReason: "token_mismatch" — even when the correct token from ~/.openclaw/openclaw.json is loaded by studio-settings.js
Environment
- OpenClaw: 2026.3.11
- Claw3D: 0.1.0
- Node: 22.21.0
- OS: macOS (Apple Silicon)
- Gateway bind: loopback (127.0.0.1:18789)
Steps to Reproduce
- Have OpenClaw gateway running on port 18789
npm install && npm run dev
- Open http://localhost:3000
- Click "Connect" (with or without token)
- Error: "Gateway closed (1012): upstream closed"
Root Cause
OpenClaw 2026.3.x gateway now requires device identity auth (public key + signature + nonce) for WebSocket connections. Claw3D gateway-proxy.js only supports token-based auth, which the gateway rejects with code=1008 reason=device identity required.
Expected Behavior
Claw3D should connect to the local gateway seamlessly, either by:
- Implementing device auth protocol
- Using the gateway's device pairing flow
- Or being recognized as a trusted local client
Bug Description
Claw3D v0.1.0 cannot connect to OpenClaw gateway 2026.3.11. The gateway rejects the WebSocket connection.
Error
Gateway closed (1012): upstream closedGateway Logs
Two types of failures observed:
cause: "device-required"— gateway expects device identity (key pair + signature), Claw3D sendsclient: "openclaw-control-ui"without device authcause: "unauthorized", authReason: "token_mismatch"— even when the correct token from~/.openclaw/openclaw.jsonis loaded bystudio-settings.jsEnvironment
Steps to Reproduce
npm install && npm run devRoot Cause
OpenClaw 2026.3.x gateway now requires device identity auth (public key + signature + nonce) for WebSocket connections. Claw3D gateway-proxy.js only supports token-based auth, which the gateway rejects with
code=1008 reason=device identity required.Expected Behavior
Claw3D should connect to the local gateway seamlessly, either by: