{"record":{"id":"b96a58d390a617d4","repo":"SeleniumHQ/selenium","slug":"could-not-find-a-valid-devtools-version-use-a-mor","errorCode":null,"errorMessage":"Could not find a valid devtools version; use a more recent version of selenium-devtools gem","messagePattern":"Could not find a valid devtools version; use a more recent version of selenium-devtools gem","errorType":"exception","errorClass":"Selenium::WebDriver::Error::WebDriverError","httpStatus":null,"severity":"error","filePath":"rb/lib/selenium/devtools.rb","lineNumber":42,"sourceCode":"\n      def load_version\n        require \"selenium/devtools/v#{@version}\"\n      rescue LoadError\n        WebDriver.logger.warn \"Could not load selenium-devtools v#{@version}. Trying older versions.\",\n                              id: :devtools\n        load_older_version\n      end\n\n      private\n\n      # Try to load up to 2 versions back\n      def load_older_version\n        load_old_version(@version - 1)\n      rescue LoadError\n        begin\n          load_old_version(@version - 2)\n        rescue LoadError\n          raise WebDriver::Error::WebDriverError,\n                'Could not find a valid devtools version; use a more recent version of selenium-devtools gem'\n        end\n      end\n\n      def load_old_version(version)\n        require \"selenium/devtools/v#{version}\"\n        self.version = version\n        msg = \"Using selenium-devtools version v#{version}, some features may not work as expected.\"\n        WebDriver.logger.warn msg, id: :devtools\n      end\n    end\n  end # DevTools\nend # Selenium\n","sourceCodeStart":24,"sourceCodeEnd":56,"githubUrl":"https://github.com/SeleniumHQ/selenium/blob/aa36b38e696a0909e973bdf5e2f9031ffe842c4b/rb/lib/selenium/devtools.rb#L24-L56","documentation":"Raised by Selenium::Devtools.load_older_version (devtools.rb) after both v-1 and v-2 fallback requires fail with LoadError. It means the installed selenium-devtools gem has no protocol module matching the browser's CDP version within two major versions. The fix is to install a newer selenium-devtools gem.","triggerScenarios":"load_version fails to require selenium/devtools/v{@version}; load_older_version tries v-1, then v-2, both raise LoadError, so it raises WebDriver::Error::WebDriverError (devtools.rb:36-45).","commonSituations":"A very new Chrome/Edge whose CDP version is more than 2 ahead of the installed gem; an outdated selenium-devtools gem pinned in a Gemfile/lockfile; major version drift between selenium-webdriver and selenium-devtools.","solutions":["Update the selenium-devtools gem: gem install selenium-devtools or bundle update selenium-devtools.","Keep selenium-webdriver and selenium-devtools on the same release line.","Downgrade the browser to one whose CDP version the gem supports, if upgrading the gem is not possible."],"exampleFix":"# before\n# Gemfile.lock pins selenium-devtools 0.114.0 with Chrome 131\n# after\ngem 'selenium-devtools', '~> 0.131'\n# then: bundle update selenium-devtools","handlingStrategy":"fallback","validationCode":"require 'rubygems'\nbegin\n  gem 'selenium-devtools', '>= ' + @version.to_s\nrescue Gem::MissingSpecVersionError\n  warn 'selenium-devtools too old for CDP v' + @version.to_s + '; upgrade the gem'\nend","typeGuard":null,"tryCatchPattern":"begin\n  Selenium::DevTools.load_version\nrescue Selenium::WebDriver::Error::WebDriverError => e\n  raise unless e.message.include?('valid devtools version')\n  system('gem install selenium-devtools') or\n    raise 'Install a newer selenium-devtools gem to match your browser CDP version'\nend","preventionTips":["Keep selenium-devtools and selenium-webdriver on the same release line.","Run bundle update selenium-devtools when upgrading the browser.","Pin the browser to a CDP version the installed gem supports if you cannot upgrade."],"tags":["devtools","version-mismatch","ruby","gem","cdp"],"backgroundTag":null,"analyzedSha":"aa36b38e696a0909e973bdf5e2f9031ffe842c4b","analyzedAt":"2026-08-14T02:32:32.244Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}