We started observing build failures 2 hours ago due to a mismatch between the Chrome and ChromeDriver versions.
We are using the Ubuntu 14.04 (Trusty) image.
The error message we get is:
unknown error: Chrome version must be >= 55.0.2883.0
(Driver info: chromedriver=2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f),platform=Linux 3.13.0-106-generic x86_64)
Whereas the documentation indicates the following versions :
Google Chrome
Version: 54.0.2840.100
ChromeDriver
Version: 2.27.440175
Our last successful build was yesterday (8 March) around 9:42 AM PST, and we observed the first failure today (9 March) at 1:55 AM PST (we had no build inbetween those two times, so I can’t pinpoint it more precisely).
Has ChromeDriver been updated to 2.28 in the last 18 hours, and not Chrome? Or is this a configuration problem on our end?
We have not made any changes to the base image. We would never update Chrome without also updating Chromedriver.
This happens every time a new version of chrome is related. @gregclermont and @carolineBda can you give me more details about your build setup? Something in your build is updating chromedriver. I would love to figure out what this is so that we can document it better.
In the meantime, the best thing to do would be to either upgrade chrome manually, or downgrade chromedriver.
It’s a ruby project and we use a gem called chromedriver-helper (v1.0.0) that automatically installs the latest version of ChromeDriver.
This is intended for local development, to make the setup of the project easier, and we didn’t realize that it was also running on CircleCI (because we put it in the :test group of the Gemfile).
I haven’t tried to fix it yet, but I think that simply moving the gem to the :development group should be a good enough solution.
group :test do
...
gem "chromedriver-helper" unless ENV.key?('CIRCLECI')
end
This does succeed at preventing the installation of the problematic newer version of ChromeDriver, but we have now another problem: Selenium WebDriver fails to connect to ChromeDriver, with this error message:
Selenium::WebDriver::Error::WebDriverError:
unable to connect to chromedriver 127.0.0.1:9515
EDIT: we fixed this by rebuilding without cache. I guess that some files created by the gem and kept in the cache were interfering even after the gem was disabled.
A quick search on the forums led me to a topic discussing a similar issue. Interestingly, one of the solutions proposed to solve this is to use the gem that we just disabled
This could work if chromedriver-helper allowed to configure the ChromeDriver version to install, but it’s not currently the case (there is an open pull-request for this on GitHub).
I haven’t really dug into this yet. I’d like to figure out the ChromeDriver connection problem, possibly by understanding how/why it worked with the gem, but I might use a patched version of the gem that allows pinning the ChromeDriver version to 2.27 as a quick workaround.
We are using protractor and it wouldn’t run without running before the following command (which get’s the latest webdriver version):
webdriver update
We couldn’t fixed the version of chromedriver so what I did to fix it while waiting the chrome verison gets updated in the container is to manually download the latest chrome like that:
For what it’s worth, I’m still running into this exact issue running Intern / JS functional tests.
Chrome version must be >= 55.0.2883.0
(Driver info: chromedriver=2.28.455506 (18f6627e265f442aeec9b6661a49fe819aeeea1f)
It’s not a Ruby project, so we had no gemfile to modify, and webdriver / chromedriver-helper npm packages were not installed. What’s especially wonky was that this error was only showing up one branch - master and other branches were working just fine.
@carolineBda’s fix is working in the meanwhile (under machine: pre:). Thank you for posting your solution!