undetected-chromedriver icon indicating copy to clipboard operation
undetected-chromedriver copied to clipboard

Message: unknown error: cannot connect to chrome at 127.0.0.1:50276

Open kSinghParth opened this issue 2 years ago β€’ 64 comments

Hey,

I am running a script on a headless server via ssh. The script was working fine until about a week ago. I made some minor unrelated changes, post which undetected-chromedriver started failing. I am attaching a very simplified code below.

from undetected_chromedriver import find_chrome_executable
from selenium.webdriver.common.by import By
import undetected_chromedriver as uc
import time
from logger import logger


def scrape():
	try:
		print(find_chrome_executable())
		driver = uc.Chrome(headless=True, service_args=["--verbose", "--log-path=cd.log"])

		driver.get('https://myexternalip.com/raw')
		time.sleep(1)
		print(driver.find_elements(By.CSS_SELECTOR, "body")[0].text)
	except Exception as e:
		print(e)
		logger.exception("Exception occured: ")

scrape()

I get the following stdout/stderr

/opt/google/chrome/chrome
Message: unknown error: unable to discover open window in chrome
  (Session info: headless chrome=103.0.5060.134)
Stacktrace:
#0 0x559738e2ecd3 <unknown>
#1 0x559738c36968 <unknown>
#2 0x559738c16f49 <unknown>
#3 0x559738c91e1a <unknown>
#4 0x559738c8baa3 <unknown>
#5 0x559738c613fa <unknown>
#6 0x559738c62555 <unknown>
#7 0x559738e762bd <unknown>
#8 0x559738e7a418 <unknown>
#9 0x559738e6036e <unknown>
#10 0x559738e7b078 <unknown>
#11 0x559738e54bb0 <unknown>
#12 0x559738e97d58 <unknown>
#13 0x559738e97ed8 <unknown>
#14 0x559738eb1cfd <unknown>
#15 0x7f14f448e6ba <unknown>

The complete stack trace is

patching driver executable /home/kpsingh/.local/share/undetected_chromedriver/9169c1ae1dc52599_chromedriver
Exception occured: 
Traceback (most recent call last):
  File "a.py", line 11, in scrape
    driver = uc.Chrome(headless=True, service_args=["--verbose", "--log-path=cd.log"])
  File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/undetected_chromedriver/__init__.py", line 408, in __init__
    keep_alive=keep_alive,
  File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 72, in __init__
    service_log_path, service, keep_alive)
  File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/chromium/webdriver.py", line 97, in __init__
    options=options)
  File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 277, in __init__
    self.start_session(capabilities, browser_profile)
  File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/undetected_chromedriver/__init__.py", line 590, in start_session
    capabilities, browser_profile
  File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 370, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 435, in execute
    self.error_handler.check_response(response)
  File "/data-2/research/expedia/Ranking-Comparator/venv/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: unable to discover open window in chrome
  (Session info: headless chrome=103.0.5060.134)
Stacktrace:
#0 0x559738e2ecd3 <unknown>
#1 0x559738c36968 <unknown>
#2 0x559738c16f49 <unknown>
#3 0x559738c91e1a <unknown>
#4 0x559738c8baa3 <unknown>
#5 0x559738c613fa <unknown>
#6 0x559738c62555 <unknown>
#7 0x559738e762bd <unknown>
#8 0x559738e7a418 <unknown>
#9 0x559738e6036e <unknown>
#10 0x559738e7b078 <unknown>
#11 0x559738e54bb0 <unknown>
#12 0x559738e97d58 <unknown>
#13 0x559738e97ed8 <unknown>
#14 0x559738eb1cfd <unknown>
#15 0x7f14f448e6ba <unknown>

Driver verbose logs.

[1658719378.800][INFO]: Starting ChromeDriver 103.0.5060.134 (8ec6fce403b3feb0869b0732eda8bd95011d333c-refs/branch-heads/5060@{#1262}) on port 44138
[1658719378.800][INFO]: Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
[1658719379.303][INFO]: [6c406d0e3de32079e8a9d655c7fe08c8] COMMAND InitSession {
   "capabilities": {
      "alwaysMatch": {
         "browserName": "chrome",
         "goog:chromeOptions": {
            "args": [ "--remote-debugging-host=127.0.0.1", "--remote-debugging-port=46537", "--user-data-dir=/tmp/tmpb6685gbz", "--lang=en-US", "--no-default-browser-check", "--no-first-run", "--headless", "--window-size=1920,1080", "--start-maximized", "--no-sandbox", "--log-level=0" ],
            "binary": "/opt/google/chrome/chrome",
            "debuggerAddress": "127.0.0.1:46537",
            "extensions": [  ]
         },
         "pageLoadStrategy": "normal"
      },
      "firstMatch": [ {
      } ]
   }
}
[1658719379.304][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.307][DEBUG]: DevTools HTTP Request failed
[1658719379.358][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.359][DEBUG]: DevTools HTTP Request failed
[1658719379.409][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.410][DEBUG]: DevTools HTTP Request failed
[1658719379.460][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.462][DEBUG]: DevTools HTTP Request failed
[1658719379.512][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.513][DEBUG]: DevTools HTTP Request failed
[1658719379.563][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.564][DEBUG]: DevTools HTTP Request failed
[1658719379.614][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.615][DEBUG]: DevTools HTTP Request failed
[1658719379.666][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.666][DEBUG]: DevTools HTTP Request failed
[1658719379.716][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719379.718][DEBUG]: DevTools HTTP Request failed
[1658719379.768][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/version
[1658719380.036][DEBUG]: DevTools HTTP Response: {
   "Browser": "HeadlessChrome/103.0.5060.134",
   "Protocol-Version": "1.3",
   "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/103.0.5060.134 Safari/537.36",
   "V8-Version": "10.3.174.20",
   "WebKit-Version": "537.36 (@8ec6fce403b3feb0869b0732eda8bd95011d333c)",
   "webSocketDebuggerUrl": "ws://127.0.0.1:46537/devtools/browser/2b165332-13f9-4fff-a60d-d2c1f94f8d98"
}

[1658719380.036][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/list
[1658719380.618][DEBUG]: DevTools HTTP Response: [ {
   "description": "",
   "devtoolsFrontendUrl": "/devtools/inspector.html?ws=127.0.0.1:46537/devtools/page/BB65E0E978029AB046DB51A606B084EF",
   "id": "BB65E0E978029AB046DB51A606B084EF",
   "title": "",
   "type": "page",
   "url": "about:blank",
   "webSocketDebuggerUrl": "ws://127.0.0.1:46537/devtools/page/BB65E0E978029AB046DB51A606B084EF"
} ]

[1658719380.618][DEBUG]: DevTools HTTP Request: http://127.0.0.1:46537/json/list
[1658719380.728][DEBUG]: DevTools HTTP Response: [  ]

[1658719380.732][INFO]: [6c406d0e3de32079e8a9d655c7fe08c8] RESPONSE InitSession ERROR unknown error: unable to discover open window in chrome
  (Session info: headless chrome=103.0.5060.134)
[1658719380.732][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1658719380.732][DEBUG]: Log type 'browser' lost 0 entries on destruction

Operating System: Ubuntu 16.04.7 LTS Kernel: Linux 4.4.0-210-generic Architecture: x86-64

$ chrome --version Google Chrome 103.0.5060.134 unknown $ which chrome /opt/google/chrome/chrome $ python --version Python 3.7.7

undetected-chromedriver==3.1.5.post4

If I simply try to run selenium headless, I am facing no problems. Any help would be appreciated. Thanks.

kSinghParth avatar Jul 25 '22 03:07 kSinghParth

I have been trying different things and the verbose driver logs seem to have changed a bit.

[1658781393.276][INFO]: Starting ChromeDriver 103.0.5060.134 (8ec6fce403b3feb0869b0732eda8bd95011d333c-refs/branch-heads/5060@{#1262}) on port 47324
[1658781393.276][INFO]: Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
[1658781393.779][INFO]: [c0a694c101f2727524e75d070370b885] COMMAND InitSession {
   "capabilities": {
      "alwaysMatch": {
         "browserName": "chrome",
         "goog:chromeOptions": {
            "args": [ "--remote-debugging-host=127.0.0.1", "--remote-debugging-port=37090", "--user-data-dir=/tmp/tmp2mvwlfbl", "--lang=en-US", "--no-default-browser-check", "--no-first-run", "--headless", "--window-size=1920,1080", "--start-maximized", "--no-sandbox", "--log-level=0" ],
            "binary": "/usr/bin/google-chrome-stable",
            "debuggerAddress": "127.0.0.1:37090",
            "extensions": [  ]
         },
         "pageLoadStrategy": "normal"
      },
      "firstMatch": [ {
      } ]
   }
}
[1658781393.779][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.781][DEBUG]: DevTools HTTP Request failed
[1658781393.831][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.833][DEBUG]: DevTools HTTP Request failed
[1658781393.883][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.884][DEBUG]: DevTools HTTP Request failed
[1658781393.934][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.935][DEBUG]: DevTools HTTP Request failed
[1658781393.985][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781393.986][DEBUG]: DevTools HTTP Request failed
.
.
.
.
.
.
[1658781453.688][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781453.689][DEBUG]: DevTools HTTP Request failed
[1658781453.739][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781453.740][DEBUG]: DevTools HTTP Request failed
[1658781453.790][DEBUG]: DevTools HTTP Request: http://127.0.0.1:37090/json/version
[1658781453.791][DEBUG]: DevTools HTTP Request failed
[1658781453.796][INFO]: [c0a694c101f2727524e75d070370b885] RESPONSE InitSession ERROR unknown error: cannot connect to chrome at 127.0.0.1:37090
from chrome not reachable
[1658781453.796][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1658781453.796][DEBUG]: Log type 'browser' lost 0 entries on destruction```

kSinghParth avatar Jul 25 '22 20:07 kSinghParth

try to add incognito into your driver.

options.add_argument("--incognito")

cmc222 avatar Jul 29 '22 09:07 cmc222

Using incognito option didn't work.

kSinghParth avatar Aug 07 '22 16:08 kSinghParth

Any news? Same is happening to me. It is strangely working from PyCharm but when I start it from a crontab on Ubuntu it doesn’t work

emibonezzi avatar Aug 17 '22 17:08 emibonezzi

Nope, my work has come to a complete halt because of this. Cant find any solution. I have tried almost every trick posted on any related problems thread.

kSinghParth avatar Aug 18 '22 00:08 kSinghParth

I've noticed that whenever I use the parameter "--user-data-dir" at the driver options:

options.add_argument("--user-data-dir=c:\WhateverFolder")

If I delete that "c:\WhateverFolder", it works again, but of course, I must re-login on every site.

Habidis avatar Aug 18 '22 11:08 Habidis

Do you solve this question?

lvzenglei avatar Sep 01 '22 08:09 lvzenglei

I had the same problem so I did the following: 1- google chrome was running using a virtual monitor see this thread: https://stackoverflow.com/questions/36582594/a-virtual-display-for-ubuntu-server 2- after updating and restarting the server I added the option ('--headless') to the driver and ran it, 3- the surprise was that it ran normally, then I deleted that headless option and ran it again and it worked with no problems 4- other solution is to add the option ('--no-sandbox') and sometimes it works with this 4- so in conclusion it's a bug related to the driver options, I hope they fix it

hosam7080 avatar Sep 16 '22 12:09 hosam7080

I have the same problem if I use options.add_argument("--user-data-dir=c:\WhateverFolder") as @Habidis mentioned. It works fine with fresh folder some amount of time but than browser both loads too long or fails with error.

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:57455
from chrome not reachable
Stacktrace:
#0 0x5650cfd6e693 <unknown>
#1 0x5650cfb679db <unknown>
#2 0x5650cfb5781e <unknown>
#3 0x5650cfb90677 <unknown>
#4 0x5650cfb87e9f <unknown>
#5 0x5650cfbc3953 <unknown>
#6 0x5650cfbbd743 <unknown>
#7 0x5650cfb93533 <unknown>
#8 0x5650cfb94715 <unknown>
#9 0x5650cfdbe7bd <unknown>
#10 0x5650cfdc1bf9 <unknown>
#11 0x5650cfda3f2e <unknown>
#12 0x5650cfdc29b3 <unknown>
#13 0x5650cfd97e4f <unknown>
#14 0x5650cfde1ea8 <unknown>
#15 0x5650cfde2052 <unknown>
#16 0x5650cfdfc71f <unknown>
#17 0x7f923f778e2d <unknown>


Process finished with exit code 1

Does anyone knows how to fix this error?

kavmax avatar Sep 19 '22 11:09 kavmax

Heys Guys, I have the same problems.

01supertips avatar Oct 28 '22 16:10 01supertips

following

smsajjadzaidi avatar Nov 16 '22 11:11 smsajjadzaidi

Heys Guys, I have the same problems.

pedro-beemon avatar Nov 17 '22 19:11 pedro-beemon

try adding these arguments to the driver

options.add_argument("--disable-gpu")
options.add_argument("--no-sandbox")
options.add_argument("--disable-setuid-sandbox")

smsajjadzaidi avatar Nov 17 '22 19:11 smsajjadzaidi

Is there any update on this issue, i have tried to add arguments mentioned by @smsajjadzaidi but it still gives this error

luongnguyentrong avatar Nov 20 '22 15:11 luongnguyentrong

Faced the same problem, occurred using python 3.7. Solution was to update to python 3.8.

deluxeomat avatar Nov 20 '22 21:11 deluxeomat

Add this all:

options.add_argument("--disable-extensions") options.add_argument('--disable-application-cache') options.add_argument('--disable-gpu') options.add_argument("--no-sandbox") options.add_argument("--disable-setuid-sandbox") options.add_argument("--disable-dev-shm-usage")

And try to running in headless: options.add_argument("--headless")

Same as update to last version and use chrome driver manager instead of path or local variable

If still not working then clean your linux and try again

Edit: the 2 dumbs that put a πŸ‘Ž are idiots that even didnt tested, Just try and youll see it works

MASSKAgithub avatar Nov 26 '22 20:11 MASSKAgithub

I had the same issue when running uc inside a Python Docker container (based on python:3.10 which is basically some minimal Debian). Here are the steps that got uc working inside the container:

  1. Install Chrome
DEBIAN_FRONTEND=noninteractive && \
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub > /usr/share/keyrings/chrome.pub && \
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/chrome.pub] http://dl.google.com/linux/chrome/deb/ stable main' > /etc/apt/sources.list.d/google-chrome.list && \
apt update -y && \
apt install -y google-chrome-stable
  1. Install the X Virtual Framebuffer display server
apt install xvfb -y
  1. Set DISPLAY environmental variable to :1
export DISPLAY=:1
  1. Start a Xvfb process in the background
Xvfb $DISPLAY -screen $DISPLAY 1280x1024x16 &
  1. Run a minimal py script with uc
python3 example.py

Here's the example script I used:

import undetected_chromedriver as uc
from time import sleep

log_path = "/chromedriver.log"
url = "https://check.torproject.org/"

chrome_driver = uc.Chrome(service_log_path=log_path)
chrome_driver.get(url)
sleep(5)
scraped_page = chrome_driver.page_source
chrome_driver.quit()
print(scraped_page)

Note that I'm running the driver without the --headless argument and it seems to work fine.

All of it is a truncated version of this Docker image (requires login to Docker hub) by @ultrafunkamsterdam.

I know that the original question was not about running uc inside a Docker container, but I hope it could give you some ideas.

martroben avatar Dec 28 '22 18:12 martroben

Thanks martroben I've merged martroben and undetected-chromedriver into Image

So can easy to run Chrome driver in container Usage:

FROM knthony/run_chrome_driver_in_container
CMD ["python", "example.py"]

michaeloo0 avatar Jan 11 '23 06:01 michaeloo0

@michaeloo0 i tried your image and it throws me selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:39597 from chrome not reachable

any ideas ?

mbernatovic avatar Feb 06 '23 14:02 mbernatovic

yes,in this image the version of chrome is 108, so please using follow script to recreate docker image

FROM ultrafunk/undetected-chromedriver:3.20-chrome-lateinstall

RUN DEBIAN_FRONTEND=noninteractive 
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub > /usr/share/keyrings/chrome.pub 
RUN echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/chrome.pub] http://dl.google.com/linux/chrome/deb/ stable main' > /etc/apt/sources.list.d/google-chrome.list
RUN apt update -y 
RUN apt install -y google-chrome-stable

RUN apt install xvfb -y 
RUN export DISPLAY=:1 
RUN Xvfb $DISPLAY -screen $DISPLAY 1280x1024x16 &

michaeloo0 avatar Feb 07 '23 02:02 michaeloo0

Just like @Habidis said, deleting the profile folder works for me.

wundergeu avatar Feb 18 '23 11:02 wundergeu

Found a solution for the problem. forget about all the extra arguments and updates/ etc.

If you are using the DIR folder that currently has a browser profile open. it will not work. you have to close everything first and then run it. That was the workaround for it for me.

@kSinghParth @wundergeu @Habidis

Anticope12 avatar Feb 26 '23 00:02 Anticope12

Thank you @Anticope12 your solution worked. Just need to close other instances of Chrome before running script !!

I've been frustrated the last couple weeks as my scripts were hanging with the following error message:

selenium.common.exceptions.WebDriverException: Message: unknown error: cannot connect to chrome at 127.0.0.1:57930 from chrome not reachable

Tried all the different arguments, but nothing worked. Now working again, just need to close browser first!

phl0yd avatar Mar 02 '23 07:03 phl0yd

@phl0yd , @Anticope12 hi,

Can you share your code here, please? Although I closed the Chrome app in the background, it didn't work on my end.

asimptot avatar Mar 02 '23 17:03 asimptot

@asimptot Not sure if all these options are necessary, but this is the code I am currently running.

Before you change your code, you may want to open task manager and make sure every Chrome task is shut down.

import undetected_chromedriver as uc

undetected_chromedriver

options = uc.ChromeOptions() options.add_argument('--incognito') options.add_argument("--window-size=1920,1080") options.add_argument("--start-maximized")

#added new options since issues in Jan 2023 https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/743 options.add_argument("--disable-extensions") options.add_argument("--disable-application-cache") options.add_argument("--disable-gpu") options.add_argument("--no-sandbox") options.add_argument("--disable-setuid-sandbox") options.add_argument("--disable-dev-shm-usage") #options.add_argument("--headless") #can enable or disable headless, up to your needs

driver = uc.Chrome(use_subprocess=True,options = options)

with driver: driver.get('https://www.yourwebsite.com')

......

phl0yd avatar Mar 06 '23 08:03 phl0yd

Here is my code and that worked for me!

    chrome_options = uc.ChromeOptions()
    chrome_options.add_argument('--headless=new')
    self.browser = uc.Chrome(options=chrome_options, version_main=110)

asimptot avatar Mar 06 '23 08:03 asimptot

yeah congrats for repeating my solution πŸ‘πŸ‘πŸ‘πŸ‘πŸ‘

MASSKAgithub avatar Mar 06 '23 08:03 MASSKAgithub

@asimptot @phl0yd @Anticope12 this solution is not working in a docker file unfortunately

rtrive avatar Mar 09 '23 12:03 rtrive

@rtrive what kind of issue did you get?

asimptot avatar Mar 09 '23 13:03 asimptot

Same as the title Message: unknown error: cannot connect to chrome at 127.0.0.1:50276.

My dockerfile is here and the Chrome options are there

rtrive avatar Mar 09 '23 13:03 rtrive