[macOS][4.90.0] Docker VMM silently loses all VM egress after ~15 h; only a restart fixes it
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Needs clarification
- Activity status
- Active
- Tech stack
- docker, macos
- Domain
- networking
Research direction
Start with the supplied diagnostics ID and inspect httpproxy.log, com.docker.backend.log, and the retained vm/init.log entries around the first refused connection. Compare Docker VMM behavior with the Apple Virtualization framework and the listed container, VM, and host network observations. Done means identifying the cause of guest egress loss and ensuring the failure is either prevented or logged clearly.
Written by the indexing model from the issue text.
Description
Description
With Docker VMM selected as the Virtual Machine Manager, Docker Desktop 4.90.0 on Apple Silicon silently lost all outbound network from the VM after about 15.5 hours of uptime. Every container was affected, and so was the engine itself (docker pull failed). The macOS host had normal connectivity throughout. No error was written to any Docker Desktop log. Restarting Docker Desktop restores connectivity; this was the third restart needed in the four days since the 4.90.0 update.
Reproduce
No reliable trigger found. What was running when it broke:
- Two long-running containers (
restart: unless-stopped), one of them driving severalclaudeCLI agent processes that open many concurrent HTTPS connections toapi.anthropic.comthrough an in-container loopback proxy; the other a small Python web app. - VM uptime at failure: 20h20m; time since Docker VMM was selected and the VM rebooted: ~15.5 h.
- Host was awake the whole time (no sleep/wake events in
pmset -g log), Tailscale running without an exit node, macOS firewall off.
Expected behavior
Container and engine egress keeps working, or the failure is logged somewhere.
Observed behavior (measured while broken)
From inside any container, including freshly started ones on the default bridge, a compose network and --network host:
$ curl -sS -m 8 https://api.anthropic.com/
curl: (7) Failed to connect to api.anthropic.com port 443 after 1 ms: Couldn't connect to server
- TCP to every destination refused in 1–8 ms: public IPs (160.79.104.10, 140.82.121.4, 1.1.1.1, 8.8.8.8), the Mac's own LAN address,
host.docker.internal, and the gateway's own proxy port192.168.65.1:3128. - ICMP to
192.168.65.1answers; ICMP to1.1.1.1is dropped; raw UDP DNS to8.8.8.8:53times out. - DNS via the embedded resolver still resolves (it reaches the host over
services1/ 192.168.65.7, noteth0), which is why the failure looks partial at first.
From the engine:
$ docker pull alpine:3.20
Error response from daemon: failed to resolve reference "docker.io/library/alpine:3.20": failed to do request:
Head "https://registry-1.docker.io/v2/library/alpine/manifests/3.20": proxyconnect tcp: dial tcp 192.168.65.1:3128: connect: connection refused
Inside the VM (nsenter -t 1 -m -u -n -i via a privileged container): dmesg clean, sockets: used 164, TCP: inuse 4 orphan 7 tw 0 alloc 30, file-nr 591, memory 915 MB free — nothing exhausted on the guest side. wget https://api.anthropic.com/ and wget http://192.168.65.1:3128/ both fail from the VM's own namespace.
On the host, com.docker.backend services had 191 open files (no fd pressure) and still held several ESTABLISHED sockets to 160.79.104.10:443 that no guest-side socket corresponded to any more.
httpproxy.log kept logging every container connection attempt normally and then refused it — no error line anywhere:
[2026-09-11T07:42:00.199724000Z] TCP 160.79.104.10:443 container via direct connection because disabled has no TCP proxy
com.docker.backend.log error-line rate was flat (~1740/h, all the idle event streamer: error: EOF noise) before, at and after the failure. vm/init.log had no matching lines for the window (rotates every ~10 min, 10 kept, so the window is now gone).
Possibly related: #630 (Docker VMM on macOS answers container DNS itself regardless of the nameserver), which also points at the VMM host-side network stack, though that one is about DNS and this one is about every TCP/UDP/ICMP flow through 192.168.65.1.
Timeline (local time, UTC+2)
| Event | Time |
|---|---|
| Docker Desktop updated to 4.90.0 (238679) | 2026-09-07 22:50 |
| Docker Desktop restarted (two agent runs had died with exit 1 an hour earlier) | 2026-09-09 18:44 |
| Docker Desktop restarted again | 2026-09-10 11:45 |
| Docker VMM selected in Settings, VM rebooted | 2026-09-10 13:26 |
| First refused container connection in the app log | 2026-09-11 05:04 |
| Diagnosed as above | 2026-09-11 09:40–10:00 |
Workaround
docker desktop stop (a plain quit of the app was ignored; the backend's own stats GET /ping was returning context deadline exceeded), switch the Virtual Machine Manager to Apple Virtualization framework, docker desktop start. Egress verified from both containers, a fresh container and docker pull afterwards. Restarting Docker Desktop alone had fixed it twice before, for a day at a time.
Platform
macOS
Version information
- Docker Desktop 4.90.0 (238679), engine 29.7.2, kernel 7.0.12-linuxkit,
UseContainerdSnapshotter: true, 8 GiB / 4 GiB swap - macOS 26.x (Darwin 25.6.0), Apple Silicon (arm64), Mac mini
- Settings at failure:
UseLibkrun: true,UseVirtualizationFramework: false(i.e. Docker VMM); no proxy configured; Tailscale installed (no exit node)
Diagnostics ID
17F9C479-A300-499D-AE5C-2281C91ED37E/20260911090418 (uploaded 2026-09-11 09:05 UTC, after the workaround; the rotated com.docker.backend.log.* and httpproxy.log it contains still cover the failure window)
- Dominant language
- No language data
- Stars
- 46
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from docker/desktop-feedback
-
kind/enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
docker/desktop-feedback#259 ·
-
kind/bug platform/macos
Difficulty 4/5 3-5 days Newbie friendliness 35/100
docker/desktop-feedback#688 ·
-
kind/bug platform/windows
Difficulty 4/5 3-5 days Newbie friendliness 45/100
docker/desktop-feedback#687 ·
-
kind/bug platform/macos
Difficulty 4/5 3-5 days Newbie friendliness 38/100
docker/desktop-feedback#686 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
docker/desktop-feedback#685 ·
All issues in docker/desktop-feedback
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
TheManticoreProject/Manticore#1380 ·
-
P3 sonic-vpp
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
sonic-net/sonic-buildimage#29662 ·
-
support
Difficulty 1/5 Under an hour Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100