This version of ChromeDriver only supports Chrome version (tested)

SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version N means the chromedriver you run is older (or newer) than your Chrome. With Selenium 4.6+, remove the hard-coded driver path and any old chromedriver on PATH; Selenium Manager then fetches the matching driver.

Setup: Chrome for Testing 156 is the browser (CHROME in common.py is its path), and an old chromedriver 140 is on disk, as happens after Chrome auto-updates while a manually downloaded driver stays behind.

import os, pathlib
from selenium import webdriver
CHROME = os.path.expanduser("~/.cache/ms-playwright/chromium-1248/chrome-linux64/chrome")
def page(html):
    p = pathlib.Path("/tmp/sl383/page.html"); p.write_text(html); return p.as_uri()
def driver():
    o = webdriver.ChromeOptions()
    o.binary_location = CHROME
    o.add_argument("--headless=new"); o.add_argument("--no-sandbox"); o.add_argument("--window-size=1000,700")
    return webdriver.Chrome(options=o)

1. Reproduce it: an explicit Service path to an old chromedriver

import os
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from common import CHROME
o = webdriver.ChromeOptions(); o.add_argument("--headless=new"); o.add_argument("--no-sandbox")
o.binary_location = CHROME                                         # Chrome 156
old = Service("/tmp/sl383/oldcache/chromedriver/linux64/140/chromedriver")   # a chromedriver 140 left on the machine
try:
    webdriver.Chrome(service=old, options=o)
except Exception as e:
    print(type(e).__name__ + ":", " | ".join(e.msg.splitlines()[:2]))
d = webdriver.Chrome(options=o)        # no Service: Selenium Manager picks a matching chromedriver
print("without Service:", d.capabilities["browserVersion"], d.capabilities["chrome"]["chromedriverVersion"].split()[0])
d.quit()

Output:

SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 140 | Current browser version is 156.0.8078.4 with binary path /home/jacque/.cache/ms-playwright/chromium-1248/chrome-linux64/chrome; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#sessionnotcreatedexception
without Service: 156.0.8078.4 156.0.8078.47

chromedriver checks the browser's major version when the session starts and refuses a mismatch: This version of ChromeDriver only supports Chrome version 140, Current browser version is 156.0.8078.4. The message also prints the browser binary it found, which tells you which Chrome is being used if you have several. The fix in the same block: drop the hard-coded Service(path). Since Selenium 4.6, Selenium Manager downloads a chromedriver matching the installed browser (156.0.8078.47 here) and caches it in ~/.cache/selenium.

2. An old chromedriver on PATH wins, even without Service

import os, shutil
os.environ["PATH"] = "/tmp/sl383/oldbin:" + os.environ["PATH"]     # an old chromedriver 140 first on PATH
print("chromedriver on PATH:", shutil.which("chromedriver"))
from selenium import webdriver
from common import CHROME
o = webdriver.ChromeOptions(); o.add_argument("--headless=new"); o.add_argument("--no-sandbox")
o.binary_location = CHROME
try:
    webdriver.Chrome(options=o)
except Exception as e:
    print(type(e).__name__ + ":", e.msg.splitlines()[0])

Output:

chromedriver on PATH: /tmp/sl383/oldbin/chromedriver
The chromedriver version (140.0.7339.207) detected in PATH at /tmp/sl383/oldbin/chromedriver might not be compatible with the detected chrome version (156.0.8078.4); currently, chromedriver 156.0.8078.47 is recommended for chrome 156.*, so it is advised to delete the driver in PATH and retry
SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 140

Without any Service, Selenium Manager still prefers a chromedriver it finds on PATH, warns that it might not be compatible, and uses it, so the session fails the same way. Delete the old driver (which chromedriver shows where it is: often /usr/local/bin, a project folder, or a webdriver_manager cache path you added to PATH), or replace it with the matching version.

3. Checklist

Related: Selenium Unable to obtain driver for chrome / error code 65.

Frequently asked questions

How do I fix This version of ChromeDriver only supports Chrome version?

Stop pointing Selenium at an old chromedriver: remove Service(path) and old chromedriver files on PATH, so Selenium Manager (Selenium 4.6+) downloads the one matching your Chrome.

Why does Selenium still use an old chromedriver without Service?

Selenium Manager prefers a chromedriver found on PATH. It logs a 'might not be compatible' warning and uses it anyway; delete it to fix the error.

Written with AI assistance. Measured on 2026-10-23 with Selenium 4.51.0 (Python 3.13.5), Chrome for Testing 156.0.8078.4 and ChromeDriver 140.0.7339.207. Each block was run verbatim and the output pasted unedited. PlainHeaders is our extension; Python, Selenium and Chrome are free.