undetected-chromedriver auto-downloaded a ChromeDriver that does not match your installed Chrome major version. Pass your Chrome's major version explicitly: `uc.Chrome(version_main=114)` (replace 114 with yours, from Chrome menu -> Help -> About Google Chrome). It then downloads the matching driver and the session starts.

## The error

```text
SessionNotCreatedException: This version of ChromeDriver only supports Chrome version 114
```

## Fix it

1. **Find your installed Chrome's major version**

Open Chrome menu -> Help -> About Google Chrome, or run:
```
google-chrome --version
```
Expected: something like `Google Chrome 138.0.7204.101`. The major version is `138`.

2. **Pin the driver to it**

```python
import undetected_chromedriver as uc
driver = uc.Chrome(version_main=138)  # your major version from step 1
```
Expected: the session starts with no SessionNotCreatedException.

3. **Alternative: update Chrome itself**

If you would rather move Chrome forward than pin the driver, update Chrome to the latest and call `uc.Chrome()` with no arguments.
Expected: auto-downloaded driver and fresh Chrome agree.

## When this applies

- the error names two different Chrome versions (supported vs current)
- Chrome auto-updated overnight and the scraper broke
- undetected-chromedriver downloaded the driver itself (you never placed one manually)

## When it does NOT apply

- `cannot find Chrome binary` means Chrome is not installed at all
- `'chromedriver' executable needs to be in PATH` is plain selenium without undetected-chromedriver

## Compatibility

undetected-chromedriver 3.x with any Chrome. The `version_main` parameter exists across 3.x releases.

## Variant phrasings

### `selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version N`

The same mismatch as wrapped by newer selenium. Same fix.

## Why it happens

Chrome and ChromeDriver must share a major version. undetected-chromedriver downloads whatever driver is current at first run and caches it; when Chrome later updates (or the cache was built for a different Chrome), the cached driver refuses the session. `version_main` forces a download matching the Chrome you actually have.

## Edge cases

- The driver cache lives in a user folder. Deleting the cached driver and re-running also forces a fresh download, but `version_main` is the deterministic fix.
- In CI, pin both: install a fixed Chrome version AND pass the same version_main, so neither side drifts.
- Brave and other Chromium forks report their own versions. Use the fork's major version the same way.
