# X_SCRAPE_KEY_INVALID

## Means

the key chord names no key a browser can press

## Typical cause

**terminal** — the chord is the caller's own literal, so attempt 2 passes the identical string. Refused by `parseKeyChord` BEFORE any key goes down, on every driver: `press()` holds each modifier, presses the key and releases in reverse, and a chord refused halfway through would leave `Control` held on the page for every later verb. Four shapes: an unknown modifier (`Ctrl`, `Cmd`, `meta` — the browser holds only `Meta`, `Control`, `Alt`, `Shift`), an empty key or a trailing `+`, an empty chord, and a modifier written twice

## Fix

spell the chord as zero or more of `Meta`, `Control`, `Alt`, `Shift` joined by `+` and then the key — `'Meta+K'`, `'Escape'`, `'Shift+Tab'` — using the browser's own key names; type a literal `+` with `page.type()`

[Scraping](/error-codes#scraping)
