openclaw - 💡(How to fix) Fix [Feature]: Emit runtime warning when Control UI config will silently reject non-secure connections [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#71669Fetched 2026-04-26 05:09:58
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Participants
Timeline (top)
cross-referenced ×2

When the gateway starts with controlUi.enabled: true and dangerouslyDisableDeviceAuth is not set, non-localhost HTTP connections are silently rejected with DEVICE_IDENTITY_REQUIRED. The user sees a cryptic "Disconnected from Gateway" message in the Control UI with no server-side guidance.

Root Cause

This is one of the most common issues for Docker and VPS users (see #32473 with 12+ comments, #45820). The current behavior makes it look like the gateway is broken when it's actually working as designed. A startup warning would:

  1. Save users hours of debugging
  2. Reduce duplicate issue filings
  3. Make the security decision visible rather than silent

Code Example

⚠️  Control UI requires a secure context (HTTPS or localhost).
    Connections from non-localhost HTTP origins will be rejected.
    Options:
    1. Access via https://localhost:18789 or SSH tunnel
    2. Set up HTTPS reverse proxy (Caddy, Traefik, Nginx)
    3. Set controlUi.dangerouslyDisableDeviceAuth: true (not recommended)
    See: https://docs.openclaw.ai/gateway/security
RAW_BUFFERClick to expand / collapse

Feature type

Enhancement (developer experience / operator UX)

Summary

When the gateway starts with controlUi.enabled: true and dangerouslyDisableDeviceAuth is not set, non-localhost HTTP connections are silently rejected with DEVICE_IDENTITY_REQUIRED. The user sees a cryptic "Disconnected from Gateway" message in the Control UI with no server-side guidance.

Proposed behavior

At gateway startup, if controlUi.enabled && !dangerouslyDisableDeviceAuth && !isSecureContext, emit a clear warning in the server logs:

⚠️  Control UI requires a secure context (HTTPS or localhost).
    Connections from non-localhost HTTP origins will be rejected.
    Options:
    1. Access via https://localhost:18789 or SSH tunnel
    2. Set up HTTPS reverse proxy (Caddy, Traefik, Nginx)
    3. Set controlUi.dangerouslyDisableDeviceAuth: true (not recommended)
    See: https://docs.openclaw.ai/gateway/security

Why this matters

This is one of the most common issues for Docker and VPS users (see #32473 with 12+ comments, #45820). The current behavior makes it look like the gateway is broken when it's actually working as designed. A startup warning would:

  1. Save users hours of debugging
  2. Reduce duplicate issue filings
  3. Make the security decision visible rather than silent

Context

The Morpheus Skill ships OpenClaw in Docker containers for decentralized AI inference. Every new user deploying on a VPS or NAS hits this wall. The fix is always the same (HTTPS proxy, SSH tunnel, or the bypass flag) — but discovering the cause takes far too long because the server gives no hint.

Environment

Affects all deployment methods where Control UI is accessed over HTTP from a non-localhost address (Docker, VPS, NAS, any remote host).

extent analysis

TL;DR

To resolve the issue of non-localhost HTTP connections being silently rejected with DEVICE_IDENTITY_REQUIRED, consider setting up an HTTPS reverse proxy or accessing the Control UI via HTTPS or SSH tunnel.

Guidance

  • Check the server logs for the proposed warning message to understand the cause of the connection rejection.
  • Verify that controlUi.enabled is set to true and dangerouslyDisableDeviceAuth is not set, which triggers the secure context requirement.
  • Consider setting up an HTTPS reverse proxy using tools like Caddy, Traefik, or Nginx to enable secure connections.
  • As a temporary workaround, access the Control UI via https://localhost:18789 or set up an SSH tunnel.

Example

No code snippet is provided as the issue focuses on configuration and deployment rather than code changes.

Notes

The proposed solution requires changes to the deployment environment, such as setting up an HTTPS reverse proxy or using an SSH tunnel. The dangerouslyDisableDeviceAuth flag is not recommended due to security concerns.

Recommendation

Apply a workaround by setting up an HTTPS reverse proxy, as it provides a secure connection and is a recommended solution.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING