Skip to content

Dev Containers does not auto-start Docker Desktop when Docker CLI is v29.x (regression caused by changed error messages in Docker Desktop 4.52.0+) #11368

@ty0521-fss

Description

@ty0521-fss

Dev Containers does not auto-start Docker Desktop when Docker CLI is v29.x (regression caused by changed error messages in Docker Desktop 4.52.0+)

Versions

  • VSCode Version: 1.106.3
  • Local OS Version: macOS (Sonoma / applicable version)
  • Remote OS Version: N/A (local Dev Container)
  • Remote Extension/Connection Type: Dev Containers (ms-vscode-remote.remote-containers 0.431.1)

Environment Notes

  • Docker Engine / CLI becomes v29+ starting with Docker Desktop 4.52.0.
  • Issue confirmed on Docker Desktop 4.54.0.
  • Likely also affects 4.53.0 (CLI shows v29.1.2).
  • Downgrading to Docker Desktop 4.51.0 (Engine 28.5.2 / CLI 28.x) → auto-start begins working again.

Logs (Docker Desktop not running)

Start: Run: docker version --format {{json .}}
{"Client":{"Version":"29.1.2","ApiVersion":"1.52","Context":"desktop-linux"},"Server":null}
failed to connect to the docker API at unix:///Users/home/.docker/run/docker.sock; check if the path is correct and if the daemon is running: dial unix /Users/home/.docker/run/docker.sock: connect: no such file or directory
Exit code 1

Expected behavior:
Dev Containers should detect this as "Docker is not running" and auto-start Docker Desktop by executing:

open -a Docker

Actual behavior:
Dev Containers does not attempt to auto-start Docker Desktop.
It stops after the docker version failure.
This only occurs with Docker CLI v29.x. With v28.x, auto-start works correctly.

Note: This issue occurs on macOS, where Dev Containers relies on triggering "open -a Docker" during its auto-start logic. With Docker CLI v29.x, the daemon-not-running error is not recognized, so this macOS-specific auto-start step never executes.

Steps to Reproduce:

  1. Install Docker Desktop ≥ 4.52.0.
  2. Quit Docker Desktop completely.
  3. Open VS Code → open a workspace with .devcontainer/devcontainer.json.
  4. Run "Reopen in Container".
  5. Dev Containers runs:
docker version --format {{json .}}
  1. Docker CLI v29 returns the following updated error message when the daemon is not running:
failed to connect to the docker API ... check if the daemon is running
  1. Dev Containers does not interpret this message as "Docker is not running".
  2. Therefore, auto-start logic (open -a Docker) never triggers.
  3. Dev Container startup fails.

Control Test:
Using Docker Desktop 4.51.0 (Docker CLI 28.x):

  • Auto-start works correctly
  • Same Dev Containers version and same VS Code version

Expected:
Dev Containers should recognize Docker CLI v29's updated error output and continue to auto-start Docker Desktop as before.

Actual:
Auto-start is skipped entirely due to unrecognized error format.

Checks:
Does this issue occur locally?: Yes
Does this occur with all extensions disabled except Dev Containers?: Yes

Summary:
This is a regression introduced by the updated Docker CLI v29 error messages (Docker Desktop 4.52.0+). Dev Containers' detection logic for "Docker daemon not running" appears to rely on old error strings, so the auto-start feature no longer triggers.

Metadata

Metadata

Assignees

Labels

bugIssue identified by VS Code Team member as probable bugcontainersIssue in vscode-remote containers

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions