X_SCRAPE_BROWSER_MISSING
Means
there is no browser on this machine for the driver to launch
Typical cause
Terminal, where its sibling X_SCRAPE_BROWSER_UNREACHABLE is retryable, and the split is the whole point. A launch that fails because there is no browser binary — or because no executablePath was configured, which is every puppeteer-core with nothing passed — is a misconfiguration: attempt 2 spawns the same absent path, five times on a five-attempt policy, and on an authenticated target that is five arrivals at a login for no chance of a different answer. Raised by browserUnreachable() when the launcher's own words say the browser is absent (must be specified, ENOENT, EACCES, Could not find Chrome); everything else stays the retryable transport code
Fix
install a Chrome or Chromium and name it — localBrowser({ launcher, executablePath: env.CHROME_PATH }) — or attach to one somebody else is running with remoteBrowser({ cdpUrl: env.SCRAPE_CDP_URL })