Skip to content

[πŸ› Bug]: DockerClient.getImage fails to find image after successful pull in standalone-docker:4.39.0Β #3151

Description

@janasrikanth

What happened?

Related Issue

Follow-up to #2940 β€” the API version mismatch was resolved, but a new failure occurs in the same code path.

Description

After upgrading to selenium/standalone-docker:4.39.0 with Docker API 1.40, image pull succeeds but DockerClient.getImage() (line 107) fails to locate the image in the subsequent local image listing.

Environment

  • Selenium Grid: selenium/standalone-docker:4.39.0
  • Docker Engine API version: 1.40
  • Host: Linux x86_64
  • Image registry: AWS ECR (<account-ID>.dkr.ecr.eu-west-2.amazonaws.com)
  • Image built with: docker buildx build --platform linux/amd64 --output=type=docker --provenance=false

Config (docker.toml)

[docker]
display-name = "selenium-grid"
configs = [
    "<Account-ID>.dkr.ecr.eu-west-2.amazonaws.com/selenium-chrome:137.0-dev", '{"browserName": "chrome"}'
]
host-config-keys = ["ExtraHosts", "Binds"]
url = "http://127.0.0.1:2375"

### Command used to start Selenium Grid with Docker (or Kubernetes)

```shell
docker run -d --name selenoid --privileged -p 4444:4444 -v /opt/selenium/Grid/config/config.toml:/opt/selenium/docker.toml -v /var/run/docker.sock:/var/run/docker.sock -v /opt/selenium/Grid/assets:/opt/selenium/assets -e SE_BROWSER_ARGS_DISABLE_DSHM=--disable-dev-shm-usage -e SE_SESSION_REQUEST_TIMEOUT=600 -e SE_SESSION_RETRY_INTERVAL=2 -e SE_START_VNC=false -e SE_NODE_MAX_SESSIONS=8 -e SE_NODE_OVERRIDE_MAX_SESSIONS=true -e SE_DOCKER_IMAGE_PULL_POLICY=Never <account-ID>.dkr.ecr.eu-west-2.amazonaws.com/selenium-grid:4.39.0-dev

Relevant log output

  • I just replaced ecr account id with Account-ID
INFO [Docker.getImage] - Obtaining image: <Account-ID>.dkr.ecr.eu-west-2.amazonaws.com/selenium-chrome:137.0-dev
13:43:25.667 INFO [DockerClient.getImage] - Listing local images: Reference{domain='<Account-ID>.dkr.ecr.eu-west-2.amazonaws.com', name='selenium-chrome', tag='137.0-dev', digest='null', platform='linux/amd64}
13:43:25.716 INFO [DockerClient.getImage] - Pulling Reference{domain='<Account-ID>.dkr.ecr.eu-west-2.amazonaws.com', name='selenium-chrome', tag='137.0-dev', digest='null', platform='linux/amd64}
13:43:25.717 INFO [PullImage.apply] - Pulling Reference{domain='<Account-ID>.dkr.ecr.eu-west-2.amazonaws.com', name='selenium-chrome', tag='137.0-dev', digest='null', platform='linux/amd64}
13:43:25.862 INFO [PullImage.apply] - Have response from server
13:43:25.863 INFO [DockerClient.getImage] - Pull completed. Listing local images again: Reference{domain='<Account-ID>.dkr.ecr.eu-west-2.amazonaws.com', name='selenium-chrome', tag='137.0-dev', digest='null', platform='linux/amd64}
13:43:25.896 ERROR [Bootstrap.runMain] - Error during execution
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.openqa.selenium.grid.Bootstrap.runMain(Bootstrap.java:77)
        at org.openqa.selenium.grid.Bootstrap.main(Bootstrap.java:70)
Caused by: org.openqa.selenium.grid.config.ConfigException: java.lang.reflect.InvocationTargetException
        at org.openqa.selenium.grid.config.MemoizedConfig.getClass(MemoizedConfig.java:119)
        at org.openqa.selenium.grid.node.config.NodeOptions.getNode(NodeOptions.java:188)
        at org.openqa.selenium.grid.commands.Standalone.createNode(Standalone.java:260)
        at org.openqa.selenium.grid.commands.Standalone.createHandlers(Standalone.java:219)
        at org.openqa.selenium.grid.TemplateGridServerCommand.asServer(TemplateGridServerCommand.java:48)
        at org.openqa.selenium.grid.commands.Standalone.execute(Standalone.java:246)
        at org.openqa.selenium.grid.TemplateGridCommand.lambda$configure$4(TemplateGridCommand.java:122)
        at org.openqa.selenium.grid.Main.launch(Main.java:83)
        at org.openqa.selenium.grid.Main.go(Main.java:56)
        at org.openqa.selenium.grid.Main.main(Main.java:41)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        ... 3 more
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at org.openqa.selenium.grid.config.ClassCreation.callCreateMethod(ClassCreation.java:51)
        at org.openqa.selenium.grid.config.MemoizedConfig.lambda$getClass$4(MemoizedConfig.java:104)
        at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1740)
        at org.openqa.selenium.grid.config.MemoizedConfig.getClass(MemoizedConfig.java:99)
        ... 13 more
Caused by: org.openqa.selenium.docker.DockerException: Pull appears to have succeeded, but image not present locally: <Account-ID>.dkr.ecr.eu-west-2.amazonaws.com/selenium-chrome:137.0-dev
        at org.openqa.selenium.docker.client.DockerClient.getImage(DockerClient.java:107)
        at org.openqa.selenium.docker.Docker.lambda$getImage$0(Docker.java:63)
        at java.base/java.util.Optional.map(Optional.java:260)
        at org.openqa.selenium.docker.Docker.getImage(Docker.java:63)
        at org.openqa.selenium.grid.node.docker.DockerOptions.lambda$loadImages$6(DockerOptions.java:313)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
        at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1760)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
2026-06-09 13:43:26,228 WARN exited: selenium-grid-docker (exit status 1; not expected)
^C

Operating System

Oracle Linux Server

Docker Selenium version (image tag)

selenium/standalone-docker:4.39.0

Selenium Grid chart version (chart version)

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions