A ConnectionResetError does not, by itself, identify the broken connection. First determine whether Chrome crashed while ChromeDriver was starting it, whether Python lost its connection to ChromeDriver, or whether another process closed a connection. Compare a direct launch of the same Chrome binary and arguments with a WebDriver launch, then use the full traceback and ChromeDriver log to narrow the cause.
What the error does—and does not—tell you
Selenium, ChromeDriver, and Chrome run as separate processes. A reset can occur while Python is communicating with ChromeDriver or while ChromeDriver is trying to start or control Chrome. The exception name alone cannot distinguish those cases. A Selenium issue report documents a ConnectionResetError(10054) seen with Selenium 4.14 and multiple browsers, but it does not establish a general cause for Linux headless Chrome failures (SeleniumHQ issue #13038).
Keep the complete traceback, especially the line where the exception occurs. Also record the Selenium, Python, Chrome or Chromium, and ChromeDriver versions; Linux distribution and version; the browser binary path; and whether the script runs as root, in a container, under a service, or in CI. Without those details and the driver log, no single fix can be identified reliably.
Start by separating Chrome startup failures from WebDriver failures
- Record the runtime details. Note the versions and execution context before changing flags or reinstalling packages. Selenium’s Chrome documentation says Selenium 4 is compatible with Chrome 75 and later by default and that Chrome and ChromeDriver major versions should match (Selenium: Chrome specific functionality). Check the versions actually installed; do not rely on an old version pairing from a forum post.
- Find the browser ChromeDriver actually starts. Inspect
chromedriver.logfor the binary path, then test that exact binary as the same Linux user and with the same launch arguments. ChromeDriver’s startup guidance recommends reproducing the launch outside WebDriver (Chrome doesn’t start or crashes immediately). - Compare the result. If direct Chrome launch fails, investigate that installation and its runtime conditions first. If direct launch works but Selenium fails, focus on the selected binary path, Chrome/ChromeDriver major-version alignment, service logs, and the precise operation identified by the traceback.
- Change one variable at a time. If the failure is specific to headless mode, compare a headed launch as a diagnostic, not as proof that headless itself caused the reset. Selenium documents
--headless=newas a commonly used Chrome argument (Selenium: Chrome specific functionality).
Check the Linux account before trying startup flags
ChromeDriver’s official guidance identifies running Chrome as root as a common Linux startup-crash cause. Its recommended approach is to run Chrome as a regular user. Although --no-sandbox can work around the issue, ChromeDriver describes that configuration as unsupported and highly discouraged; do not treat the flag as a routine fix (Chrome doesn’t start or crashes immediately).
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
For a service, container, or CI job, verify the effective user and that the same account can launch the browser with the same environment and arguments. A local desktop test under a different account does not establish that the service context is configured correctly.
Enable ChromeDriver logging in Python
Use a service log file and verbose driver output so the ChromeDriver startup sequence can be compared with the traceback. This illustrative configuration uses Selenium’s documented Chrome options and Python Chrome Service API; adapt the binary path and arguments to your installation.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--headless=new")
service = webdriver.ChromeService(
service_args=["--verbose"],
log_output="chromedriver.log",
)
driver = webdriver.Chrome(options=options, service=service)
Run it as a regular Linux user. After failure, correlate the traceback time with chromedriver.log and look for the browser binary ChromeDriver selected, startup arguments, and whether the browser process exited. The Python Chrome Service API reference documents the executable path, service arguments, log destination, environment mapping, and default port behavior. If Chrome is installed at a nonstandard path, set its binary explicitly through Chrome options as described in Selenium’s Chrome documentation.
Use the outcome to choose the next fix
| What you observe | Where to investigate next |
|---|---|
| The exact Chrome binary exits or crashes when launched directly with the test arguments. | Browser installation, Linux permissions, effective user, service or container environment, and startup arguments. Follow ChromeDriver’s direct-launch guidance rather than debugging Python’s connection first. |
| Chrome launches directly, but the WebDriver session fails. | Chrome and ChromeDriver major versions, the binary path in the driver log, ChromeDriver startup output, and the traceback line identifying the failing request. |
| Headed mode works but headless mode fails. | Compare the two launches while keeping the binary, account, environment, and other arguments constant. This isolates a mode-dependent difference; it does not alone establish a universal headless fix. |
| The traceback mentions a reset but logs do not show which process stopped. | Collect the full traceback and verbose ChromeDriver log together, along with versions and execution context. The reset alone is insufficient to name a cause. |
Troubleshooting errors that commonly derail diagnosis
- “Chrome works on my machine.” Confirm that the machine, account, browser binary, arguments, and environment match the Linux service or CI job. ChromeDriver recommends testing in the same environment as the test.
- “I added
--no-sandboxand it started.” If the process runs as root, change it to a regular user where possible. ChromeDriver calls the workaround unsupported and highly discouraged; success with the flag is not a reason to present it as a safe default. - “The versions look close enough.” Check major versions explicitly. Selenium’s documented compatibility baseline is Chrome 75 or newer for Selenium 4, with matching Chrome and ChromeDriver major versions; that does not guarantee every environment-specific launch will work.
- “It must be a missing Linux library.” The available evidence does not support a universal library list for this exception. Do not install distro-specific packages without a log or browser error indicating what is missing.
- “A headless flag fixed it for someone else.” Treat flags as controlled experiments. Selenium documents
--headless=new, but the documentation does not establish that headless mode itself causes this reset.
Or skip the browser setup:
If the goal is to capture a page rather than automate an interactive browser session, ScreenshotNeo provides a screenshot API and MCP server. One GET request returns an image or PDF, without setting up ChromeDriver in your Linux job:
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Cookie banners, popups, and chat widgets are removed before capture; bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. Its MCP server lets AI agents use screenshot tools, and the Free plan includes 1,000 shots a month with no card; paid plans start at $5 for 3,000 shots. Sign up for free.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.When to ask for more specific help
To diagnose a particular reset rather than follow the general isolation route, provide the complete traceback, Selenium/Python/Chrome/ChromeDriver versions, Linux distribution, exact Chrome binary path, execution user and context, launch arguments, and the relevant ChromeDriver log excerpt. Selenium’s Understanding Common Errors page is a useful starting point for interpreting WebDriver failures.
Quick Recap
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

