{"record":{"id":"797dd6eab1b922d9","repo":"Fosowl/agenticSeek","slug":"chromedriver-not-found-and-could-not-be-installed","errorCode":null,"errorMessage":"ChromeDriver not found and could not be installed automatically. Please install it manually from https://chromedriver.chromium.org/downloads.and ensure it's in your PATH or specify the path directly.See know issues in readme if your chrome version is above 115.","messagePattern":"ChromeDriver not found and could not be installed automatically\\. Please install it manually from https://chromedriver\\.chromium\\.org/downloads\\.and ensure it's in your PATH or specify the path directly\\.See know issues in readme if your chrome version is above 115\\.","errorType":"exception","errorClass":"FileNotFoundError","httpStatus":null,"severity":"critical","filePath":"sources/browser.py","lineNumber":140,"sourceCode":"    chromedriver_path = shutil.which(\"chromedriver\")\n    if chromedriver_path:\n        if is_chromedriver_compatible(chromedriver_path):\n            return chromedriver_path\n        print(f\"System ChromeDriver at {chromedriver_path} is outdated, attempting auto-update...\")\n    \n    # In Docker environment, try the fixed path\n    if os.path.exists('/.dockerenv'):\n        docker_chromedriver_path = \"/usr/local/bin/chromedriver\"\n        if os.path.exists(docker_chromedriver_path) and os.access(docker_chromedriver_path, os.X_OK):\n            print(f\"Using Docker ChromeDriver at {docker_chromedriver_path}\")\n            return docker_chromedriver_path\n    \n    # Auto-install matching ChromeDriver version\n    try:\n        print(\"Installing matching ChromeDriver version automatically...\")\n        chromedriver_path = chromedriver_autoinstaller.install()\n    except Exception as e:\n        raise FileNotFoundError(\n            \"ChromeDriver not found and could not be installed automatically. \"\n            \"Please install it manually from https://chromedriver.chromium.org/downloads.\"\n            \"and ensure it's in your PATH or specify the path directly.\"\n            \"See know issues in readme if your chrome version is above 115.\"\n        ) from e\n    \n    if not chromedriver_path:\n        raise FileNotFoundError(\"ChromeDriver not found. Please install it or add it to your PATH.\")\n    return chromedriver_path\n\ndef bypass_ssl() -> str:\n    \"\"\"\n    This is a fallback for stealth mode to bypass SSL verification. Which can fail on some setup.\n    \"\"\"\n    pretty_print(\"Bypassing SSL verification issues, we strongly advice you update your certifi SSL certificate.\", color=\"warning\")\n    ssl._create_default_https_context = ssl._create_unverified_context\n\ndef get_free_port() -> int:","sourceCodeStart":122,"sourceCodeEnd":158,"githubUrl":"https://github.com/Fosowl/agenticSeek/blob/ae57a2357745a9706cb12d0fd76d954c84d166fa/sources/browser.py#L122-L158","documentation":"install_chromedriver() first tries chromedriver_autoinstaller.install(); if that throws (download failure, no matching driver for the Chrome version, offline, etc.) it wraps the cause in this FileNotFoundError. It signals that Selenium cannot proceed without a ChromeDriver binary and the auto-installer could not provide one.","triggerScenarios":"create_driver -> install_chromedriver when chromedriver_autoinstaller.install() raises: no internet access, Chrome version has no matching driver, Chrome not installed/undetectable, or corporate proxy blocking the download.","commonSituations":"Chrome 115+ where older selenium-manager/autoinstaller lookup paths changed (the message explicitly points to readme known issues); CI containers without Chrome installed; offline or proxied networks; mismatched Chrome/ChromeDriver major versions.","solutions":["Install ChromeDriver manually from https://chromedriver.chromium.org/downloads (or Chrome for Testing endpoints for 115+) matching your Chrome major version, and put it on PATH or pass its path to the driver factory.","Update Chrome and the chromedriver-autoinstaller/selenium packages to latest so version matching works.","For Chrome 115+, use Chrome for Testing + matching ChromeDriver per the project readme's known issues.","Check network/proxy settings; set HTTPS_PROXY so the auto-installer can download, or pre-install the driver in the image."],"exampleFix":"// before\ndriver = create_driver()  # FileNotFoundError: ChromeDriver not found...\n// after\n# matching version installed and on PATH\nsubprocess.run([\"apt-get\", \"install\", \"-y\", \"chromium-chromedriver\"], check=True)\ndriver = create_driver()","handlingStrategy":"fallback","validationCode":"import shutil, subprocess\ndef chromedriver_ready() -> bool:\n    if shutil.which(\"chromedriver\") is None:\n        return False\n    return subprocess.run([\"chromedriver\", \"--version\"],\n                          capture_output=True).returncode == 0\nif not chromedriver_ready():\n    print(\"Install matching ChromeDriver from https://chromedriver.chromium.org/downloads\")","typeGuard":null,"tryCatchPattern":"try:\n    driver = create_driver()\nexcept FileNotFoundError as e:\n    if \"ChromeDriver not found and could not be installed\" in str(e):\n        driver = create_driver(driver_path=manually_installed_chromedriver)  # explicit path\n    else:\n        raise","preventionTips":["Pin Chrome and ChromeDriver to the same major version in your environment/Dockerfile.","Install ChromeDriver in the base image so runtime downloads are unnecessary.","For Chrome 115+, use Chrome for Testing endpoints as the readme suggests.","Configure HTTPS_PROXY in CI so the auto-installer can reach download hosts."],"tags":["selenium","chromedriver","environment","browser"],"backgroundTag":"chromedriver-install-failed","analyzedSha":"ae57a2357745a9706cb12d0fd76d954c84d166fa","analyzedAt":"2026-08-30T02:49:05.834Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}