2

I'm running a java webapp in Apache Tomcat/10.0.23 on a remote server which implements selenium chromedriver. Whenever I create the webdriver it returns a HTTP Status 500 – Internal Server Error.

Google-chrome location:

/usr/bin/google-chrome /usr/share/man/man1/google-chrome.1.gz 

Google-chrome version:

110.0.5481.77

Chromedriver location:

/usr/bin/chromedriver 

Chromedriver version:

110.0.5481.77 (65ed616c6e8ee3fe0ad64fe83796c020644d42af-refs/branch-heads/5481@{#839})

Selenium

<dependency>
       <groupId>org.seleniumhq.selenium</groupId>
       <artifactId>selenium-java</artifactId>
       <version>4.8.0</version>
</dependency>

Error:

<body>
    <h1>HTTP Status 500 – Internal Server Error</h1>
    <hr class="line" />
    <p><b>Type</b> Exception Report</p>
    <p><b>Message</b> Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start:
        crashed.</p>
    <p><b>Description</b> The server encountered an unexpected condition that prevented it from fulfilling the request.
    </p>
    <p><b>Exception</b></p>
    <pre>org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: crashed.
  (unknown error: DevToolsActivePort file doesn&#39;t exist)
  (The process started from chrome location &#47;usr&#47;bin&#47;google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) 
Host info: host: &#39;ip-xxxxxxxxxx2&#39;, ip: &#39;127.0.0.1&#39;
Build info: version: &#39;4.8.0&#39;, revision: &#39;267030adea&#39;
System info: os.name: &#39;Linux&#39;, os.arch: &#39;amd64&#39;, os.version: &#39;5.10.0-21-cloud-amd64&#39;, java.version: &#39;11.0.15.1&#39;
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--headless=new, --disable-dev-shm-usage, --no-sandbox], extensions: []}, pageLoadStrategy: eager}], desiredCapabilities=Capabilities {browserName: chrome, goog:chromeOptions: {args: [--headless=new, --disable-dev-shm-usage, --no-sandbox], extensions: []}, pageLoadStrategy: eager}}]
    org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:148)
    org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:106)
    org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67)
    org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:156)
    org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167)
    org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142)
    org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
    org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:229)
    org.openqa.selenium.remote.RemoteWebDriver.&lt;init&gt;(RemoteWebDriver.java:157)
    org.openqa.selenium.chromium.ChromiumDriver.&lt;init&gt;(ChromiumDriver.java:101)
    org.openqa.selenium.chrome.ChromeDriver.&lt;init&gt;(ChromeDriver.java:82)
    org.openqa.selenium.chrome.ChromeDriver.&lt;init&gt;(ChromeDriver.java:71)
    com.fourdcontrols.servlets.TestServlet.doGet(TestServlet.java:29)
    jakarta.servlet.http.HttpServlet.service(HttpServlet.java:668)
    jakarta.servlet.http.HttpServlet.service(HttpServlet.java:777)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
</pre>
    <p><b>Note</b> The full stack trace of the root cause is available in the server logs.</p>
    <hr class="line" />
    <h3>Apache Tomcat/10.0.23</h3>
</body>

Logs:

Starting ChromeDriver 110.0.5481.77 (65ed616c6e8ee3fe0ad64fe83796c020644d42af-refs/branch-heads/5481@{#839}) on port 3125
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352

1 Answers1

0

Thumb rule

A common cause for Chrome to crash during startup is running Chrome as root user (administrator) on Linux. While it is possible to work around this issue by passing --no-sandbox flag when creating your WebDriver session, such a configuration is unsupported and highly discouraged. You need to configure your environment to run Chrome as a regular user instead.


References

You can find a couple of relevant detailed discussion and documentation in:

undetected Selenium
  • 183,867
  • 41
  • 278
  • 352