Summary
In OrbStack 2.1.2, every container started by Docker (default bridge and user-defined networks) receives HTTP_PROXY, HTTPS_PROXY, ALL_PROXY pointing to http://proxyproxy.orb.internal:8305, even when proxy is explicitly disabled in Settings (GUI shows None, CLI shows network_proxy: none).
The injected proxy then fails to route HTTP traffic between containers on user-defined Docker networks and returns 502 Bad Gateway for every inter-container HTTP request.
This breaks any docker-compose stack that relies on container-to-container HTTP.
Worked fine in 2.1.1. Regression introduced in 2.1.2.
Environment
| Item |
Value |
| OrbStack |
2.1.2 (2010200) — commit a1770d5 |
| Host OS |
macOS 15 (Darwin 24.6.0), Apple Silicon |
| Docker network |
user-defined bridge and default bridge — both affected |
| Container images |
Verified with alpine, curlimages/curl, minio/mc, minio/minio |
Configuration (proxy is OFF)
$ orb config show | grep -i proxy
network.proxy.exclude:
network_proxy: none
GUI: Settings → Network → Proxy = None.
Impact
- Breaks
docker compose up for stacks doing internal HTTP between services — observed with MinIO bucket initialization (mc mb returns 502 Bad Gateway), but applies to any S3 client, internal REST call, or curl-based healthcheck.
- Init containers using
condition: service_completed_successfully fail, blocking dependent services (docker compose exits non-zero).
- Silent failure mode — application code just sees opaque 502s and the proxy is invisible from the user's perspective.
Workaround
Manually unset the proxy in every affected service in compose.yaml:
environment:
HTTP_PROXY: ""
HTTPS_PROXY: ""
ALL_PROXY: ""
http_proxy: ""
https_proxy: ""
all_proxy: ""
NO_PROXY: "*"
no_proxy: "*"
This should not be necessary when proxy is set to none.
Suggested fix
Honor network_proxy: none (and GUI None) by skipping *_PROXY env injection entirely for new containers — restoring 2.1.1 behavior.
Reproduction
Step 1 — confirm proxy is disabled
orb config show | grep network_proxy
# → network_proxy: none
Step 2 — inspect env vars in any container
docker run --rm alpine env | grep -i proxy
Actual output (proxy is supposedly none):
HTTP_PROXY=http://proxyproxy.orb.internal:8305
HTTPS_PROXY=http://proxyproxy.orb.internal:8305
ALL_PROXY=http://proxyproxy.orb.internal:8305
http_proxy=http://proxyproxy.orb.internal:8305
https_proxy=http://proxyproxy.orb.internal:8305
all_proxy=http://proxyproxy.orb.internal:8305
NO_PROXY=localhost,127.0.0.1,...,*.orb.internal,...
Expected output: no proxy variables at all.
Step 3 — demonstrate the 502 on inter-container HTTP
docker network create demo
docker run -d --name minio --network demo \
-e MINIO_ROOT_USER=admin -e MINIO_ROOT_PASSWORD=admin12345 \
minio/minio:latest server /data
# A) With injected proxy (default behavior in 2.1.2)
docker run --rm --network demo curlimages/curl:latest \
-s -o /dev/null -w "HTTP %{http_code}\n" \
http://minio:9000/minio/health/live
# → HTTP 502 (request goes through proxyproxy.orb.internal:8305)
# B) Bypassing the proxy
docker run --rm --network demo curlimages/curl:latest \
--noproxy '*' -s -o /dev/null -w "HTTP %{http_code}\n" \
http://minio:9000/minio/health/live
# → HTTP 200 (direct connection works fine)
The 502 is returned by proxyproxy.orb.internal:8305, not by MinIO — verified with curl -v:
* Established connection to proxyproxy.orb.internal (0.250.250.200 port 8305)
> GET http://minio:9000/minio/health/live HTTP/1.1
> Host: minio:9000
< HTTP/1.1 502 Bad Gateway
< Connection: close
< Content-Length: 0
Expected behavior
When network_proxy: none (or GUI = None), no *_PROXY environment variables should be injected into containers — matching 2.1.1 behavior and the documented contract.
Actual behavior
*_PROXY variables are injected unconditionally and the proxy returns 502 Bad Gateway for any inter-container HTTP request on user-defined networks (the very networks docker-compose uses by default).
Diagnostic report (REQUIRED)
OrbStack info:
Version: 2.1.2
Commit: a1770d56d56ee2ac0deadd1f025177313e242f45 (v2.1.2)
System info:
macOS: 15.7.4 (24G517)
CPU: arm64, 12 cores
CPU model: Apple M3 Pro
Model: Mac15,6
Memory: 36 GiB
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2026-05-10T09-47-10.103510Z.zip
Summary
In OrbStack 2.1.2, every container started by Docker (default bridge and user-defined networks) receives
HTTP_PROXY,HTTPS_PROXY,ALL_PROXYpointing tohttp://proxyproxy.orb.internal:8305, even when proxy is explicitly disabled in Settings (GUI shows None, CLI showsnetwork_proxy: none).The injected proxy then fails to route HTTP traffic between containers on user-defined Docker networks and returns
502 Bad Gatewayfor every inter-container HTTP request.This breaks any docker-compose stack that relies on container-to-container HTTP.
Worked fine in 2.1.1. Regression introduced in 2.1.2.
Environment
2.1.2 (2010200)— commita1770d5alpine,curlimages/curl,minio/mc,minio/minioConfiguration (proxy is OFF)
GUI: Settings → Network → Proxy = None.
Impact
docker compose upfor stacks doing internal HTTP between services — observed with MinIO bucket initialization (mc mbreturns502 Bad Gateway), but applies to any S3 client, internal REST call, orcurl-based healthcheck.condition: service_completed_successfullyfail, blocking dependent services (docker composeexits non-zero).Workaround
Manually unset the proxy in every affected service in
compose.yaml:This should not be necessary when proxy is set to
none.Suggested fix
Honor
network_proxy: none(and GUI None) by skipping*_PROXYenv injection entirely for new containers — restoring 2.1.1 behavior.Reproduction
Step 1 — confirm proxy is disabled
Step 2 — inspect env vars in any container
docker run --rm alpine env | grep -i proxyActual output (proxy is supposedly
none):Expected output: no proxy variables at all.
Step 3 — demonstrate the 502 on inter-container HTTP
The 502 is returned by
proxyproxy.orb.internal:8305, not by MinIO — verified withcurl -v:Expected behavior
When
network_proxy: none(or GUI = None), no*_PROXYenvironment variables should be injected into containers — matching 2.1.1 behavior and the documented contract.Actual behavior
*_PROXYvariables are injected unconditionally and the proxy returns502 Bad Gatewayfor any inter-container HTTP request on user-defined networks (the very networks docker-compose uses by default).Diagnostic report (REQUIRED)
OrbStack info:
Version: 2.1.2
Commit: a1770d56d56ee2ac0deadd1f025177313e242f45 (v2.1.2)
System info:
macOS: 15.7.4 (24G517)
CPU: arm64, 12 cores
CPU model: Apple M3 Pro
Model: Mac15,6
Memory: 36 GiB
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2026-05-10T09-47-10.103510Z.zip