Open
Description
Description
I run the dynamic grid with docker.
When I try to create a new session, it fails to create a new web socket connection.
Selenium tries to establish the connection multiple times by calling this endpoint:
Establishing connection to ws://localhost:4444/session/f677747a492042d657a565f67af933bf/se/bidi
https://seleniumhq.slack.com/archives/C0ABCS03F/p1751876651385139
Reproducible Code
https://github.com/baflQA/selenium-debug/blob/main/src/test/java/seleniumdebug/CreateNewSessionTest.java
Bootstrap script: https://github.com/baflQA/selenium-debug/blob/main/runGridStandalone.sh
Debugging Logs
[ProxyNodeWebsockets.createWsEndPoint] - Connecting to upstream websocket failed
2025-07-07 10:19:49.504 | org.openqa.selenium.remote.http.ConnectionFailedException: JdkWebSocket initial request execution error
2025-07-07 10:19:49.504 | Build info: version: '4.34.0', revision: '2a4c61c498'
2025-07-07 10:19:49.504 | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '6.10.14-linuxkit', java.version: '21.0.7'
2025-07-07 10:19:49.504 | Driver info: driver.version: unknown
2025-07-07 10:19:49.504 | at org.openqa.selenium.remote.http.jdk.JdkHttpClient.openSocket(JdkHttpClient.java:253)
2025-07-07 10:19:49.504 | at org.openqa.selenium.remote.tracing.TracedHttpClient.openSocket(TracedHttpClient.java:45)
2025-07-07 10:19:49.504 | at org.openqa.selenium.grid.node.ProxyNodeWebsockets.createWsEndPoint(ProxyNodeWebsockets.java:238)
2025-07-07 10:19:49.504 | at org.openqa.selenium.grid.node.ProxyNodeWebsockets.lambda$findBiDiEndpoint$3(ProxyNodeWebsockets.java:183)
2025-07-07 10:19:49.504 | at java.base/java.util.Optional.map(Optional.java:260)
2025-07-07 10:19:49.504 | at org.openqa.selenium.grid.node.ProxyNodeWebsockets.findBiDiEndpoint(ProxyNodeWebsockets.java:183)
2025-07-07 10:19:49.504 | at org.openqa.selenium.grid.node.ProxyNodeWebsockets.apply(ProxyNodeWebsockets.java:112)
2025-07-07 10:19:49.504 | at org.openqa.selenium.grid.node.ProxyNodeWebsockets.apply(ProxyNodeWebsockets.java:48)
2025-07-07 10:19:49.504 | at org.openqa.selenium.netty.server.WebSocketUpgradeHandler.handleHttpRequest(WebSocketUpgradeHandler.java:137)
2025-07-07 10:19:49.504 | at org.openqa.selenium.netty.server.WebSocketUpgradeHandler.channelRead(WebSocketUpgradeHandler.java:100)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
2025-07-07 10:19:49.504 | at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
2025-07-07 10:19:49.504 | at io.netty.handler.codec.http.websocketx.extensions.WebSocketServerExtensionHandler.onHttpRequestChannelRead(WebSocketServerExtensionHandler.java:158)
2025-07-07 10:19:49.504 | at io.netty.handler.codec.http.websocketx.extensions.WebSocketServerExtensionHandler.channelRead(WebSocketServerExtensionHandler.java:82)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
2025-07-07 10:19:49.504 | at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
2025-07-07 10:19:49.504 | at io.netty.handler.codec.http.HttpServerKeepAliveHandler.channelRead(HttpServerKeepAliveHandler.java:64)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
2025-07-07 10:19:49.504 | at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
2025-07-07 10:19:49.504 | at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
2025-07-07 10:19:49.504 | at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
2025-07-07 10:19:49.504 | at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
2025-07-07 10:19:49.504 | at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
2025-07-07 10:19:49.504 | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
2025-07-07 10:19:49.504 | at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868)
2025-07-07 10:19:49.504 | at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
2025-07-07 10:19:49.504 | at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796)
2025-07-07 10:19:49.504 | at io.netty.channel.nio.NioEvent...
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: java.net.http.HttpTimeoutException: request timed out
at java.net.http/jdk.internal.net.http.ResponseTimerEvent.handle(ResponseTimerEvent.java:63)
at java.net.http/jdk.internal.net.http.HttpClientImpl.purgeTimeoutsAndReturnNextDeadline(HttpClientImpl.java:1781)
at java.net.http/jdk.internal.net.http.HttpClientImpl$SelectorManager.run(HttpClientImpl.java:1379)
ℹ️ Last known working version: 4.33