## TL;DR

Chromedriver and Chrome must share the same major version; when Chrome auto-updates, a pinned driver stops working. The durable fix is to stop pinning: let Selenium Manager (built into Selenium 4.6 and newer) download the matching driver automatically, or pin both versions together.

## Error

```text
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 120
Current browser version is 124.0.6367.60
```

## Steps

1. Check both versions: `chromedriver --version` and `google-chrome --version`. Expected: you see the mismatch, e.g. driver 120 against browser 124.
2. Easiest fix: remove any hardcoded driver path from your code and let Selenium Manager resolve it (Selenium 4.6 and newer does this when no driver path or Service is given). Expected: the next run downloads the matching driver automatically.
3. If you manage the driver yourself, install the matching release: `npm i -D chromedriver@124` to match Chrome 124, or fetch it from the Chrome for Testing distribution. Expected: `chromedriver --version` prints the same major as Chrome.
4. Pin both in CI: use a Docker image or setup action that installs a matched pair, so Chrome cannot drift ahead of the driver. Expected: CI stops breaking on Chrome auto-updates.
5. Re-run the suite. Expected: the session creates without SessionNotCreatedException.

## When to use

- The error names the Chrome version chromedriver supports.
- It broke right after a Chrome update, with no code change.
- It fails in CI but works locally (different Chrome versions).

## When not to use

- Renderer timeouts (the session exists; the page hangs).
- Element-not-found errors (selector issue).
- `chromedriver executable needs to be in PATH` (driver missing, not mismatched).

## Tool compatibility

- Selenium 4.x; Chrome and Chromedriver 115 and newer (the Chrome for Testing era).
- Selenium Manager needs network access to the driver download endpoints.

## Variant phrasings

### Current browser version is X with a different number

Same fix regardless of which side is newer: align the majors.

### chromedriver 114 against Chrome 115 or newer

Version 115 moved drivers to the Chrome for Testing distribution and broke old download URLs. Use the new distribution.

### works locally, fails in CI

The CI image has a different Chrome than your laptop. Pin the pair in the image.

## Why it happens

Chromedriver speaks the DevTools protocol of one Chrome major version. Chrome auto-updates silently, so a driver that worked yesterday mismatches today. Version 115 also moved drivers to the Chrome for Testing distribution, which broke old download URLs on top of the version skew.

## Edge cases

- Selenium Manager caches drivers under the selenium cache dir in your home folder; clear it if it cached a stale one.
- Corporate proxies can block the driver download; then pin the driver manually instead.
- A `chromedriver` found on PATH shadows Selenium Manager's copy, so check PATH first when the auto-download seems ignored.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_8qKzt0PaWF-q3477tfOFsg
