Resolving 'device identity required' in OpenClaw LAN Mode
TL;DR โ Quick Fix
The Control UI fails to pass auth tokens over insecure HTTP because it incorrectly skips authentication logic; upgrade to the latest build to include the corrected auth header transmission.
Run DiagnosticsNext Step
Fix now, then reduce repeat incidents
If this issue keeps coming back, validate your setup in Doctor first, then harden your config.
Error Signal
device identity requiredWhat's Happening
You're trying to connect to your OpenClaw gateway over LAN using HTTP, but despite setting allowInsecureAuth and dangerouslyDisableDeviceAuth, you're hitting a wall. The UI throws a "device identity required" error because it stops sending your auth token in the request headers.
The Fix
Upgrade your OpenClaw instance to the latest version. A fix has been merged into the main branch that explicitly forces the gateway to attach authToken or authPassword from your connection options, even when the browser environment is detected as insecure (non-HTTPS).
If you are running the gateway in Docker, simply pull the latest image:
docker pull openclaw/openclaw:latest
docker-compose up -d --force-recreate
Once the service restarts, the Control UI will correctly inject the auth token into the connect payload, bypassing the requirement for device identity verification that triggered the error.
Why This Occurs
This is a regression in how the GatewayBrowserClient handles authentication. Previously, the logic in ui/src/ui/gateway.ts only triggered the selectConnectAuth function if the connection was secure (isSecureContext).
When running over LAN via HTTP, the browser detects an insecure context. The previous code path simply skipped selecting any authentication method, meaning your connect request arrived at the gateway with an empty params.auth object. The gateway then rejected the request because it didn't find the expected identity headers, even though you explicitly configured it to allow insecure auth.
Prevention
Always ensure your gateway configuration is matched by your network environment. While dangerouslyDisableDeviceAuth is a powerful tool for LAN debugging, it does not bypass the need for a token if your auth.mode is set to token. Verify these settings in your gateway.yaml:
gateway:
auth:
mode: "token"
token: "YOUR_SECRET_TOKEN"
controlUi:
allowInsecureAuth: true
dangerouslyDisableDeviceAuth: true
If you still face issues, inspect your browser's network tab (F12) and check the connect WebSocket frame to ensure the payload includes your auth token. If it's missing, you are likely still on a version prior to the fix.
Last Updated: March 2026
Did this guide solve your problem?