Selenium tests with chromium / google-chrome failing with "execlp failed" error after Server release 4.6.1

Our scheduled CI build started failing on the 23rd of August. We use capybara + selenium + chromedriver to run some integration tests in chromium, and these tests started breaking:

RSpec::Core::MultipleExceptionError
\e[1mFailure/Error: \e[0mUnable to find matching line from backtrace

  session not created: Chrome failed to start: exited normally.
    (session not created: DevToolsActivePort file doesn't exist)
    (The process started from chrome location /home/deploy/.cache/selenium/chrome/linux64/128.0.6613.84/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

  session not created: Chrome failed to start: exited normally.
    (session not created: DevToolsActivePort file doesn't exist)
    (The process started from chrome location /home/deploy/.cache/selenium/chrome/linux64/128.0.6613.84/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

I saw a CircleCI changelog entry on this day, for “Server release 4.6.1”.

I tried installing google-chrome instead of chromium, but we are getting the same crash. Running google-chrome manually from an SSH session gives me a “execlp failed” error:

root@c49f0749511c:/home/circleci/project# /usr/bin/google-chrome --help
[0827/022314.971585:FATAL:chrome_main_delegate.cc(436)] execlp failed: No such file or directory (2)
Trace/breakpoint trap (core dumped)

Note that the tests are all passing when I run them locally on my machine using the exact same Docker image. So the issue appears to be a Docker permission that was recently removed when running the images on CI.

I found a blog post that describes a similar error: Chrome in docker | Public Notes

Otherwise I haven’t been able to find too much on Google. Has anyone else run into this? Is there something I can change in my CircleCI config, or in capybara/selenium? Thanks!

1 Like

Sorry I’ve just realized that selenium was downloading it’s own version of chrome instead of using the one that I had already installed in the container. Apparently newer versions of selenium come with “selenium manager” and it downloads it’s own browser.

These failed CI builds coincide with the release of Chrome 128. So it looks like I need to downgrade Chrome to <= 127 until selenium is updated. It looks like I might be able to do this by setting the SE_BROWSER_VERSION environment variable.

Hi @ndbroadbent

Where you able to solve this issue?
How did you solve it?

I have a native host (Debian Bullsey) which uses chromium 126 and it works fine.
How ever I need to run it within a docker container which is Debian Bookworm based and uses chromium 130.

I am not sure how I would have to use the mentioned SE_BROWSER_VERSION.