Skip to content

WhatsApp login fails in OpenShell sandbox - WebSocket timeout due to HTTP/2 proxy #513

@vhojan

Description

@vhojan

Description

When attempting to pair WhatsApp inside a NemoClaw sandbox on DGX Spark using openclaw channels login --channel whatsapp, the connection times out with:
WhatsApp Web connection ended before fully opening. status=408 Request Time-out WebSocket Error (Opening handshake has timed out)

Root Cause:
The OpenShell proxy at 10.200.0.1:3128 negotiates HTTP/2 (h2) with WhatsApp's servers by default. WhatsApp Web's WebSocket endpoint (wss://web.whatsapp.com/ws/chat) requires an HTTP/1.1 upgrade — HTTP/2 does not support the 101 Switching Protocols mechanism.
This was confirmed by testing directly with curl:

curl (default, HTTP/2 via proxy) → HTTP/2 400
curl --http1.1 (via proxy) → HTTP/1.1 101 Switching Protocols ✅

So the underlying connectivity is fine — the proxy just needs to negotiate HTTP/1.1 for WebSocket endpoints.

Expected Behavior:
WhatsApp login should successfully establish a WebSocket connection and display a QR code for pairing.

Workaround:
None found. Setting UNDICI_NO_H2=1 does not affect OpenClaw's internal WhatsApp client. Adding WhatsApp domains to no_proxy removes internet access entirely since the sandbox has no direct route.

Suggested Fix:
Force HTTP/1.1 for WebSocket upgrade requests in the OpenShell proxy, or add a policy option to disable HTTP/2 for specific endpoints.

Reproduction Steps

Steps: openclaw channels login --channel whatsapp
Error: status=408 Request Time-out WebSocket Error (Opening handshake has timed out)
Root cause: OpenShell proxy uses HTTP/2 for CONNECT tunnels, but WhatsApp Web WebSocket requires HTTP/1.1. curl --http1.1 successfully gets 101 Switching Protocols, but OpenClaw's internal client times out.
Device: DGX Spark

Environment

Device: NVIDIA DGX Spark (GB10, 128GB unified memory)
OS: Ubuntu 24.04
NemoClaw: 0.1.0 (installed from source)
OpenClaw: 2026.3.11
OpenShell CLI: 0.0.10

Logs

Checklist

  • I confirmed this bug is reproducible
  • I searched existing issues and this is not a duplicate

Metadata

Metadata

Assignees

Labels

Integration: OpenClawSupport for OpenClawPlatform: DGX SparkSupport for DGX SparkbugSomething isn't workingenhancement: integrationPRs or issues proposing integration of a third-party product or service into NemoClaw.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions