selenium connection refused to chromedriver: how to fix
Fixes Selenium 'connection refused' to chromedriver: startup, ports, and processes. Use when the driver process is not reachable. Not for browser launch failures.
TL;DR
The chromedriver process is not listening where Selenium expects. Start it explicitly or let Selenium Manager handle it, check the port is free, and kill stale driver processes.
Error
urllib3.exceptions.NewConnectionError: Failed to establish a new connection: [Errno 111] Connection refusedSteps
- Check for stale chromedriver processes:
ps aux | grep chromedriver. Kill them. Expected: no zombies holding the port. - Let Selenium Manager start the driver (Selenium 4.6+ default). Expected: no manual driver management.
- If starting manually, use a free port:
chromedriver --port=9516and point Selenium at it. Expected: no port conflict. - Check the driver log for crash lines at startup. Expected: the real startup error, if any.
- Re-run. Expected: Selenium connects.
When to use
Connection refusednaming chromedriver's port.- After killing hung runs.
When not to use
- Browser fails after the driver connects (browser issue).
- Grid setups (hub/node networking).
Tool compatibility
- Selenium 4.x; chromedriver matching Chrome.
Variant phrasings
Failed to establish a new connection to chromedriver
The urllib3 form; same fix.
chromedriver connection refused in CI
Stale processes from prior jobs; clean the workspace.
Why it happens
The driver is a separate HTTP server. If it crashed, never started, or a zombie holds its port, Selenium cannot connect.
Edge cases
- CI runners that reuse workspaces accumulate zombies; clean processes in a pre-step.
- Port 9515 conflicts with parallel jobs; assign ports per job.
- Driver logs go to stderr by default; capture them in CI.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_Hn8cmYJlyQ4BK0OeGcGGuw
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.