Environment
- OS: macOS 26.4.0 (Darwin, Apple Silicon)
- Docker Desktop: 29.2.1
- OpenShell CLI: v0.0.13
- Gateway image: ghcr.io/nvidia/openshell/gateway:0.0.13
Problem
The v0.0.13 gateway server starts in plaintext HTTP/1.1 mode despite having TLS configured and valid certificates mounted. Since gRPC requires HTTP/2, the CLI cannot communicate with the gateway at all.
Symptoms
With TLS (default):
openshell status
Error: × client error (Connect)
╰─▶ received corrupt message of type InvalidContentType
With --plaintext:
openshell sandbox list
Error: × status: Unknown, message: "h2 protocol error: http2 error"
├─▶ transport error
├─▶ http2 error
╰─▶ connection error detected: frame with invalid size
Root Cause
The server binary does not enable TLS even though:
disableTls: false in helm chart values
OPENSHELL_TLS_CERT and OPENSHELL_TLS_KEY env vars are set
- Valid certs are mounted at
/etc/openshell-tls/server/
- I tried manually regenerating PKI certs and restarting the pod — no effect
Server startup log shows no TLS initialization:
INFO openshell_server: Starting OpenShell server bind=0.0.0.0:8080
INFO openshell_server: Server listening address=0.0.0.0:8080
Verified with curl:
# Server only speaks HTTP/1.1
curl -v http://127.0.0.1:8080/
> GET / HTTP/1.1
< HTTP/1.1 404 Not Found
# TLS probe fails — server sends plaintext
echo | openssl s_client -connect 127.0.0.1:8080
SSL routines:tls_get_more_records:packet length too long
# grpcurl over h2c times out — no HTTP/2 support
grpcurl -plaintext 127.0.0.1:8080 list
Failed to dial target host: context deadline exceeded
The server also logs continuous sandbox watcher errors:
WARN openshell_server::sandbox: Sandbox watcher error error=watch stream failed: Error reading events stream: ServiceError: error reading a body from connection
This repeats every 30 seconds.
Steps to Reproduce
openshell --version # 0.0.13
openshell gateway start --name test
# Wait for "Gateway ready"
openshell status # InvalidContentType
openshell gateway destroy -g test
openshell gateway start --name test --plaintext
openshell sandbox list # h2 protocol error
Expected Behavior
The server should either:
- Start with TLS enabled when
disableTls: false and certs are mounted
- Support h2c (HTTP/2 cleartext) when running in
--plaintext mode so gRPC works without TLS
Related Issues
Environment
Problem
The v0.0.13 gateway server starts in plaintext HTTP/1.1 mode despite having TLS configured and valid certificates mounted. Since gRPC requires HTTP/2, the CLI cannot communicate with the gateway at all.
Symptoms
With TLS (default):
With
--plaintext:Root Cause
The server binary does not enable TLS even though:
disableTls: falsein helm chart valuesOPENSHELL_TLS_CERTandOPENSHELL_TLS_KEYenv vars are set/etc/openshell-tls/server/Server startup log shows no TLS initialization:
Verified with curl:
The server also logs continuous sandbox watcher errors:
This repeats every 30 seconds.
Steps to Reproduce
Expected Behavior
The server should either:
disableTls: falseand certs are mounted--plaintextmode so gRPC works without TLSRelated Issues