Tests run normally but the sessions are not released at end of tests. The session slot become full and no other test is able to start. Then I restart selenium-distributor container in order to clean the sessions.
I am able to list the sessions ID through curl --request GET 'http://localhost:4444/status'
# docker compose logs selenium-distributor
selenium-distributor | Virtual environment detected at /home/seluser/venv, activating...
selenium-distributor | Python 3.14.3
selenium-distributor | 2026-03-30 16:45:21,960 INFO Included extra file "/etc/supervisor/conf.d/selenium-grid-distributor.conf" during parsing
selenium-distributor | 2026-03-30 16:45:22,173 INFO RPC interface 'supervisor' initialized
selenium-distributor | 2026-03-30 16:45:22,177 INFO supervisord started with pid 9
selenium-distributor | 2026-03-30 16:45:22,184 INFO spawned: 'selenium-grid-distributor' with pid 10
selenium-distributor | Starting Selenium Grid Distributor...
selenium-distributor | 2026-03-30 16:45:22,204 INFO success: selenium-grid-distributor entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
selenium-distributor | Appending Selenium option: --publish-events tcp://localhost:4442
selenium-distributor | Appending Selenium option: --subscribe-events tcp://localhost:4443
selenium-distributor | Appending Selenium option: --sessions-host localhost
selenium-distributor | Appending Selenium option: --sessions-port 5556
selenium-distributor | Appending Selenium option: --sessionqueue-host localhost
selenium-distributor | Appending Selenium option: --sessionqueue-port 5559
selenium-distributor | Appending Selenium option: --port 5553
selenium-distributor | Appending Selenium option: --bind-host false
selenium-distributor | Appending Selenium option: --healthcheck-interval 120
selenium-distributor | Appending Selenium option: --session-retry-interval 15
selenium-distributor | Appending Selenium option: --session-request-timeout 300
selenium-distributor | Appending Selenium option: --log-level INFO
selenium-distributor | Appending Selenium option: --http-logs false
selenium-distributor | Appending Selenium option: --structured-logs false
selenium-distributor | Appending Selenium option: --plain-logs true
selenium-distributor | Appending Selenium option: --reject-unsupported-caps false
selenium-distributor | Appending Selenium option: --tracing false
selenium-distributor | Tracing is disabled
selenium-distributor | Using JAVA_OPTS: -Dwebdriver.remote.enableTracing=false -Dwebdriver.httpclient.version=HTTP_1_1
selenium-distributor | 16:45:26.576 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
selenium-distributor | 16:45:26.708 INFO [LoggingOptions.getTracer] - Using null tracer
selenium-distributor | 16:45:27.560 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://localhost:4442 and tcp://localhost:4443
selenium-distributor | 16:45:27.956 INFO [ZmqUtils.configureHeartbeat] - ZMQ SUB socket heartbeat configured: interval=60s, timeout=180s, ttl=360s
selenium-distributor | 16:45:28.156 INFO [ZmqUtils.configureHeartbeat] - ZMQ PUB socket heartbeat configured: interval=60s, timeout=180s, ttl=360s
selenium-distributor | 16:45:28.229 INFO [UnboundZmqEventBus.<init>] - Sockets created
selenium-distributor | 16:45:29.257 INFO [UnboundZmqEventBus.<init>] - Event bus ready
selenium-distributor | 16:45:29.287 INFO [LoggingOptions.getTracer] - Using null tracer
selenium-distributor | 16:45:33.500 INFO [LoggingOptions.getTracer] - Using null tracer
selenium-distributor | 16:45:34.375 WARN [HostIdentifier.resolveHostAddress] - Failed to resolve host address
selenium-distributor | java.net.UnknownHostException: hidden-host-q-int.hidden-domain: hidden-host-q-int.hidden-domain: Name or service not known
selenium-distributor | at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1936)
selenium-distributor | at org.openqa.selenium.net.HostIdentifier.resolveHostAddress(HostIdentifier.java:105)
selenium-distributor | at org.openqa.selenium.net.HostIdentifier.getHostAddress(HostIdentifier.java:124)
selenium-distributor | at org.openqa.selenium.net.DefaultNetworkInterfaceProvider.<init>(DefaultNetworkInterfaceProvider.java:55)
selenium-distributor | at org.openqa.selenium.net.NetworkUtils.<init>(NetworkUtils.java:50)
selenium-distributor | at org.openqa.selenium.grid.server.BaseServerOptions.lambda$getExternalUri$1(BaseServerOptions.java:106)
selenium-distributor | at java.base/java.util.Optional.orElseGet(Optional.java:364)
selenium-distributor | at org.openqa.selenium.grid.server.BaseServerOptions.lambda$getExternalUri$2(BaseServerOptions.java:103)
selenium-distributor | at java.base/java.util.Optional.orElseGet(Optional.java:364)
selenium-distributor | at org.openqa.selenium.grid.server.BaseServerOptions.getExternalUri(BaseServerOptions.java:98)
selenium-distributor | at org.openqa.selenium.netty.server.NettyServer.<init>(NettyServer.java:112)
selenium-distributor | at org.openqa.selenium.grid.TemplateGridServerCommand$1.<init>(TemplateGridServerCommand.java:50)
selenium-distributor | at org.openqa.selenium.grid.TemplateGridServerCommand.asServer(TemplateGridServerCommand.java:49)
selenium-distributor | at org.openqa.selenium.grid.distributor.httpd.DistributorServer.execute(DistributorServer.java:152)
selenium-distributor | at org.openqa.selenium.grid.TemplateGridCommand.lambda$configure$4(TemplateGridCommand.java:123)
selenium-distributor | at org.openqa.selenium.grid.Main.launch(Main.java:83)
selenium-distributor | at org.openqa.selenium.grid.Main.go(Main.java:56)
selenium-distributor | at org.openqa.selenium.grid.Main.main(Main.java:41)
selenium-distributor | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
selenium-distributor | at java.base/java.lang.reflect.Method.invoke(Method.java:580)
selenium-distributor | at org.openqa.selenium.grid.Bootstrap.runMain(Bootstrap.java:77)
selenium-distributor | at org.openqa.selenium.grid.Bootstrap.main(Bootstrap.java:70)
selenium-distributor | Caused by: java.net.UnknownHostException: hidden-host-q-int.hidden-domain: Name or service not known
selenium-distributor | at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
selenium-distributor | at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:52)
selenium-distributor | at java.base/java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1211)
selenium-distributor | at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1828)
selenium-distributor | at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1139)
selenium-distributor | at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1818)
selenium-distributor | at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1931)
selenium-distributor | ... 21 more
selenium-distributor | 16:45:35.082 INFO [DistributorServer.execute] - Started Selenium Distributor 4.41.0 (revision 9fc754f90a): http://172.17.0.1:5553
selenium-distributor | 16:45:47.914 INFO [Node.<init>] - Binding additional locator mechanisms: relative
selenium-distributor | 16:45:49.644 INFO [LocalGridModel.setAvailability] - Switching Node 0954a67f-3bd0-4bc2-b15a-c494eff6fbc6 (uri: http://172.17.0.1:5562) from DOWN to UP
selenium-distributor | 16:45:49.650 INFO [LocalNodeRegistry.add] - Added node 0954a67f-3bd0-4bc2-b15a-c494eff6fbc6 at http://172.17.0.1:5562. Health check every 120s
selenium-distributor | 16:45:49.662 INFO [Node.<init>] - Binding additional locator mechanisms: relative
selenium-distributor | 16:45:50.464 INFO [LocalGridModel.setAvailability] - Switching Node 8dafee8a-ed7b-4a4b-a8d3-30f19491ba38 (uri: http://172.17.0.1:5564) from DOWN to UP
selenium-distributor | 16:45:50.464 INFO [LocalNodeRegistry.add] - Added node 8dafee8a-ed7b-4a4b-a8d3-30f19491ba38 at http://172.17.0.1:5564. Health check every 120s
selenium-distributor | 16:45:50.477 INFO [Node.<init>] - Binding additional locator mechanisms: relative
selenium-distributor | 16:45:50.950 INFO [LocalGridModel.setAvailability] - Switching Node 0cd3f2c7-5d68-415d-aa1f-1cf6f5c4a950 (uri: http://172.17.0.1:5560) from DOWN to UP
selenium-distributor | 16:45:50.952 INFO [LocalNodeRegistry.add] - Added node 0cd3f2c7-5d68-415d-aa1f-1cf6f5c4a950 at http://172.17.0.1:5560. Health check every 120s
selenium-distributor | Trapped SIGTERM/SIGINT/x so shutting down supervisord...
selenium-distributor | 2026-03-30 16:47:20,046 WARN received SIGTERM indicating exit request
selenium-distributor | 2026-03-30 16:47:20,049 INFO waiting for selenium-grid-distributor to die
selenium-distributor | 16:47:20.889 INFO [LocalGridModel.setAvailability] - Switching Node 8dafee8a-ed7b-4a4b-a8d3-30f19491ba38 (uri: http://172.17.0.1:5564) from UP to DRAINING
selenium-distributor | 2026-03-30 16:47:20,948 WARN stopped: selenium-grid-distributor (terminated by SIGTERM)
selenium-distributor | Shutdown complete
selenium-distributor | Virtual environment detected at /home/seluser/venv, activating...
selenium-distributor | Python 3.14.3
selenium-distributor | 2026-03-30 16:48:02,963 INFO Included extra file "/etc/supervisor/conf.d/selenium-grid-distributor.conf" during parsing
selenium-distributor | 2026-03-30 16:48:03,023 INFO RPC interface 'supervisor' initialized
selenium-distributor | 2026-03-30 16:48:03,023 INFO supervisord started with pid 11
selenium-distributor | 2026-03-30 16:48:03,078 INFO spawned: 'selenium-grid-distributor' with pid 12
selenium-distributor | Starting Selenium Grid Distributor...
selenium-distributor | 2026-03-30 16:48:03,126 INFO success: selenium-grid-distributor entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
selenium-distributor | Appending Selenium option: --publish-events tcp://localhost:4442
selenium-distributor | Appending Selenium option: --subscribe-events tcp://localhost:4443
selenium-distributor | Appending Selenium option: --sessions-host localhost
selenium-distributor | Appending Selenium option: --sessions-port 5556
selenium-distributor | Appending Selenium option: --sessionqueue-host localhost
selenium-distributor | Appending Selenium option: --sessionqueue-port 5559
selenium-distributor | Appending Selenium option: --port 5553
selenium-distributor | Appending Selenium option: --bind-host false
selenium-distributor | Appending Selenium option: --healthcheck-interval 120
selenium-distributor | Appending Selenium option: --session-retry-interval 15
selenium-distributor | Appending Selenium option: --session-request-timeout 300
selenium-distributor | Appending Selenium option: --log-level INFO
selenium-distributor | Appending Selenium option: --http-logs false
selenium-distributor | Appending Selenium option: --structured-logs false
selenium-distributor | Appending Selenium option: --plain-logs true
selenium-distributor | Appending Selenium option: --reject-unsupported-caps false
selenium-distributor | Appending Selenium option: --tracing false
selenium-distributor | Tracing is disabled
selenium-distributor | Using JAVA_OPTS: -Dwebdriver.remote.enableTracing=false -Dwebdriver.httpclient.version=HTTP_1_1
selenium-distributor | 16:48:13.896 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding
selenium-distributor | 16:48:14.326 INFO [LoggingOptions.getTracer] - Using null tracer
selenium-distributor | 16:48:16.227 INFO [UnboundZmqEventBus.<init>] - Connecting to tcp://localhost:4442 and tcp://localhost:4443
selenium-distributor | 16:48:17.298 INFO [ZmqUtils.configureHeartbeat] - ZMQ SUB socket heartbeat configured: interval=60s, timeout=180s, ttl=360s
selenium-distributor | 16:48:17.795 INFO [ZmqUtils.configureHeartbeat] - ZMQ PUB socket heartbeat configured: interval=60s, timeout=180s, ttl=360s
selenium-distributor | 16:48:17.857 INFO [UnboundZmqEventBus.<init>] - Sockets created
selenium-distributor | 16:48:18.952 INFO [UnboundZmqEventBus.<init>] - Event bus ready
selenium-distributor | 16:48:19.019 INFO [LoggingOptions.getTracer] - Using null tracer
selenium-distributor | 16:48:30.580 INFO [LoggingOptions.getTracer] - Using null tracer
selenium-distributor | 16:48:33.142 WARN [HostIdentifier.resolveHostAddress] - Failed to resolve host address
selenium-distributor | java.net.UnknownHostException: hidden-host-q-int.hidden-domain: hidden-host-q-int.hidden-domain: Name or service not known
selenium-distributor | at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1936)
selenium-distributor | at org.openqa.selenium.net.HostIdentifier.resolveHostAddress(HostIdentifier.java:105)
selenium-distributor | at org.openqa.selenium.net.HostIdentifier.getHostAddress(HostIdentifier.java:124)
selenium-distributor | at org.openqa.selenium.net.DefaultNetworkInterfaceProvider.<init>(DefaultNetworkInterfaceProvider.java:55)
selenium-distributor | at org.openqa.selenium.net.NetworkUtils.<init>(NetworkUtils.java:50)
selenium-distributor | at org.openqa.selenium.grid.server.BaseServerOptions.lambda$getExternalUri$1(BaseServerOptions.java:106)
selenium-distributor | at java.base/java.util.Optional.orElseGet(Optional.java:364)
selenium-distributor | at org.openqa.selenium.grid.server.BaseServerOptions.lambda$getExternalUri$2(BaseServerOptions.java:103)
selenium-distributor | at java.base/java.util.Optional.orElseGet(Optional.java:364)
selenium-distributor | at org.openqa.selenium.grid.server.BaseServerOptions.getExternalUri(BaseServerOptions.java:98)
selenium-distributor | at org.openqa.selenium.netty.server.NettyServer.<init>(NettyServer.java:112)
selenium-distributor | at org.openqa.selenium.grid.TemplateGridServerCommand$1.<init>(TemplateGridServerCommand.java:50)
selenium-distributor | at org.openqa.selenium.grid.TemplateGridServerCommand.asServer(TemplateGridServerCommand.java:49)
selenium-distributor | at org.openqa.selenium.grid.distributor.httpd.DistributorServer.execute(DistributorServer.java:152)
selenium-distributor | at org.openqa.selenium.grid.TemplateGridCommand.lambda$configure$4(TemplateGridCommand.java:123)
selenium-distributor | at org.openqa.selenium.grid.Main.launch(Main.java:83)
selenium-distributor | at org.openqa.selenium.grid.Main.go(Main.java:56)
selenium-distributor | at org.openqa.selenium.grid.Main.main(Main.java:41)
selenium-distributor | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
selenium-distributor | at java.base/java.lang.reflect.Method.invoke(Method.java:580)
selenium-distributor | at org.openqa.selenium.grid.Bootstrap.runMain(Bootstrap.java:77)
selenium-distributor | at org.openqa.selenium.grid.Bootstrap.main(Bootstrap.java:70)
selenium-distributor | Caused by: java.net.UnknownHostException: hidden-host-q-int.hidden-domain: Name or service not known
selenium-distributor | at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
selenium-distributor | at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:52)
selenium-distributor | at java.base/java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1211)
selenium-distributor | at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1828)
selenium-distributor | at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1139)
selenium-distributor | at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1818)
selenium-distributor | at java.base/java.net.InetAddress.getLocalHost(InetAddress.java:1931)
selenium-distributor | ... 21 more
selenium-distributor | 16:48:34.948 INFO [DistributorServer.execute] - Started Selenium Distributor 4.41.0 (revision 9fc754f90a): http://172.17.0.1:5553
selenium-distributor | 16:48:42.618 INFO [Node.<init>] - Binding additional locator mechanisms: relative
selenium-distributor | 16:48:44.456 INFO [LocalGridModel.setAvailability] - Switching Node 2a960ee3-7e40-4324-a639-fc594f6cca51 (uri: http://172.17.0.1:5564) from DOWN to UP
selenium-distributor | 16:48:44.459 INFO [LocalNodeRegistry.add] - Added node 2a960ee3-7e40-4324-a639-fc594f6cca51 at http://172.17.0.1:5564. Health check every 120s
selenium-distributor | 16:48:44.505 INFO [Node.<init>] - Binding additional locator mechanisms: relative
selenium-distributor | 16:48:45.967 INFO [LocalGridModel.setAvailability] - Switching Node 375e15b8-f501-40f1-85bf-e8da2c64b8de (uri: http://172.17.0.1:5562) from DOWN to UP
selenium-distributor | 16:48:45.967 INFO [LocalNodeRegistry.add] - Added node 375e15b8-f501-40f1-85bf-e8da2c64b8de at http://172.17.0.1:5562. Health check every 120s
selenium-distributor | 16:48:45.974 INFO [Node.<init>] - Binding additional locator mechanisms: relative
selenium-distributor | 16:48:46.810 INFO [LocalGridModel.setAvailability] - Switching Node 0e5e0eff-7ca2-472e-a230-df5d7ffc401a (uri: http://172.17.0.1:5560) from DOWN to UP
selenium-distributor | 16:48:46.811 INFO [LocalNodeRegistry.add] - Added node 0e5e0eff-7ca2-472e-a230-df5d7ffc401a at http://172.17.0.1:5560. Health check every 120s
selenium-distributor | 16:52:48.235 INFO [LocalDistributor.newSession] - Session request received by the Distributor:
selenium-distributor | [Capabilities {browserName: chrome, goog:chromeOptions: {args: [--no-sandbox, --disable-dev-shm-usage, --disable-gpu], extensions: []}, pageLoadStrategy: normal, se:name: Selenium Grid Remote Test, se:recordVideo: true, se:timeouts: {session: 300}}]
selenium-distributor | 16:52:55.050 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: b9117dc4f61045cd0c72da03976f6ee7
selenium-distributor | Caps: Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 136.0.7103.113, chrome: {chromedriverVersion: 136.0.7103.113 (76fa3c17824..., userDataDir: /tmp/.org.chromium.Chromium...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:41301}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: linux, proxy: {}, se:bidiEnabled: false, se:cdp: ws://172.17.0.1:4444/sessio..., se:cdpVersion: 136.0.7103.113, se:containerName: hidden-host-q-int.i..., se:deleteSessionOnUi: true, se:downloadsEnabled: true, se:name: Selenium Grid Remote Test, se:noVncPort: 7900, se:recordVideo: true, se:timeouts: {session: 300}, se:vnc: ws://172.17.0.1:4444/sessio..., se:vncEnabled: true, se:vncLocalAddress: ws://172.17.0.1:7900, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
selenium-distributor | 16:53:32.434 WARN [UnboundZmqEventBus$PollingRunnable.lambda$notifyListeners$2] - Caught exception from listener: org.openqa.selenium.events.EventListener@4baa3061
selenium-distributor | org.openqa.selenium.json.JsonException: Unable to parse: "b9117dc4f61045cd0c72da03976f6ee7"
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:170)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:153)
selenium-distributor | at org.openqa.selenium.events.Event.getData(Event.java:58)
selenium-distributor | at org.openqa.selenium.events.EventListener.accept(EventListener.java:42)
selenium-distributor | at org.openqa.selenium.events.EventListener.accept(EventListener.java:24)
selenium-distributor | at org.openqa.selenium.events.zeromq.UnboundZmqEventBus$PollingRunnable.lambda$notifyListeners$2(UnboundZmqEventBus.java:332)
selenium-distributor | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
selenium-distributor | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
selenium-distributor | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
selenium-distributor | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
selenium-distributor | at java.base/java.lang.Thread.run(Thread.java:1583)
selenium-distributor | Caused by: org.openqa.selenium.json.JsonException: Unable to create instance of class org.openqa.selenium.grid.data.SessionClosedData
selenium-distributor | Build info: version: '4.41.0', revision: '9fc754f90a'
selenium-distributor | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.14.0-611.42.1.el9_7.x86_64', java.version: '21.0.10'
selenium-distributor | Driver info: driver.version: unknown
selenium-distributor | at org.openqa.selenium.json.StaticInitializerCoercer.lambda$apply$0(StaticInitializerCoercer.java:61)
selenium-distributor | at org.openqa.selenium.json.JsonTypeCoercer.coerce(JsonTypeCoercer.java:143)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:205)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:168)
selenium-distributor | ... 10 more
selenium-distributor | Caused by: java.lang.reflect.InvocationTargetException
selenium-distributor | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
selenium-distributor | at java.base/java.lang.reflect.Method.invoke(Method.java:580)
selenium-distributor | at org.openqa.selenium.json.StaticInitializerCoercer.lambda$apply$0(StaticInitializerCoercer.java:59)
selenium-distributor | ... 13 more
selenium-distributor | Caused by: org.openqa.selenium.json.JsonException: Expected to read a START_MAP but instead have: STRING. Last 0 characters read: , next 34 characters to read: "b9117dc4f61045cd0c72da03976f6ee7"
selenium-distributor | Build info: version: '4.41.0', revision: '9fc754f90a'
selenium-distributor | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.14.0-611.42.1.el9_7.x86_64', java.version: '21.0.10'
selenium-distributor | Driver info: driver.version: unknown
selenium-distributor | at org.openqa.selenium.json.JsonInput.expect(JsonInput.java:515)
selenium-distributor | at org.openqa.selenium.json.JsonInput.beginObject(JsonInput.java:363)
selenium-distributor | at org.openqa.selenium.grid.data.SessionClosedData.fromJson(SessionClosedData.java:144)
selenium-distributor | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
selenium-distributor | ... 15 more
selenium-distributor | 16:59:39.815 INFO [LocalDistributor.newSession] - Session request received by the Distributor:
selenium-distributor | [Capabilities {acceptInsecureCerts: true, browserName: firefox, moz:firefoxOptions: {prefs: {remote.active-protocols: 3}}, selenoid:options: {enableVNC: true, enableVideo: true}}]
selenium-distributor | 16:59:48.455 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: d49c9cb1-1455-4c7f-8f4f-80d66c27c872
selenium-distributor | Caps: Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 144.0.2, container:hostname: hidden-host-q-int.i..., moz:accessibilityChecks: false, moz:buildID: 20251027123126, moz:firefoxOptions: {prefs: {remote.active-protocols: 3}}, moz:geckodriverVersion: 0.36.0, moz:headless: false, moz:platformVersion: 5.14.0-611.42.1.el9_7.x86_64, moz:processID: 3652, moz:profile: /tmp/rust_mozprofileDedFbu, moz:shutdownTimeout: 60000, moz:webdriverClick: true, moz:windowless: false, pageLoadStrategy: normal, platformName: linux, proxy: {}, se:bidiEnabled: false, se:cdpEnabled: false, se:containerName: hidden-host-q-int.i..., se:deleteSessionOnUi: true, se:downloadsEnabled: true, se:noVncPort: 7900, se:vnc: ws://172.17.0.1:4444/sessio..., se:vncEnabled: true, se:vncLocalAddress: ws://172.17.0.1:7900, selenoid:options: {enableVNC: true, enableVideo: true}, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, userAgent: Mozilla/5.0 (X11; Linux x86...}
selenium-distributor | 17:00:34.801 WARN [UnboundZmqEventBus$PollingRunnable.lambda$notifyListeners$2] - Caught exception from listener: org.openqa.selenium.events.EventListener@4baa3061
selenium-distributor | org.openqa.selenium.json.JsonException: Unable to parse: "d49c9cb1-1455-4c7f-8f4f-80d66c27c872"
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:170)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:153)
selenium-distributor | at org.openqa.selenium.events.Event.getData(Event.java:58)
selenium-distributor | at org.openqa.selenium.events.EventListener.accept(EventListener.java:42)
selenium-distributor | at org.openqa.selenium.events.EventListener.accept(EventListener.java:24)
selenium-distributor | at org.openqa.selenium.events.zeromq.UnboundZmqEventBus$PollingRunnable.lambda$notifyListeners$2(UnboundZmqEventBus.java:332)
selenium-distributor | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
selenium-distributor | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
selenium-distributor | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
selenium-distributor | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
selenium-distributor | at java.base/java.lang.Thread.run(Thread.java:1583)
selenium-distributor | Caused by: org.openqa.selenium.json.JsonException: Unable to create instance of class org.openqa.selenium.grid.data.SessionClosedData
selenium-distributor | Build info: version: '4.41.0', revision: '9fc754f90a'
selenium-distributor | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.14.0-611.42.1.el9_7.x86_64', java.version: '21.0.10'
selenium-distributor | Driver info: driver.version: unknown
selenium-distributor | at org.openqa.selenium.json.StaticInitializerCoercer.lambda$apply$0(StaticInitializerCoercer.java:61)
selenium-distributor | at org.openqa.selenium.json.JsonTypeCoercer.coerce(JsonTypeCoercer.java:143)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:205)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:168)
selenium-distributor | ... 10 more
selenium-distributor | Caused by: java.lang.reflect.InvocationTargetException
selenium-distributor | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
selenium-distributor | at java.base/java.lang.reflect.Method.invoke(Method.java:580)
selenium-distributor | at org.openqa.selenium.json.StaticInitializerCoercer.lambda$apply$0(StaticInitializerCoercer.java:59)
selenium-distributor | ... 13 more
selenium-distributor | Caused by: org.openqa.selenium.json.JsonException: Expected to read a START_MAP but instead have: STRING. Last 0 characters read: , next 38 characters to read: "d49c9cb1-1455-4c7f-8f4f-80d66c27c872"
selenium-distributor | Build info: version: '4.41.0', revision: '9fc754f90a'
selenium-distributor | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.14.0-611.42.1.el9_7.x86_64', java.version: '21.0.10'
selenium-distributor | Driver info: driver.version: unknown
selenium-distributor | at org.openqa.selenium.json.JsonInput.expect(JsonInput.java:515)
selenium-distributor | at org.openqa.selenium.json.JsonInput.beginObject(JsonInput.java:363)
selenium-distributor | at org.openqa.selenium.grid.data.SessionClosedData.fromJson(SessionClosedData.java:144)
selenium-distributor | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
selenium-distributor | ... 15 more
selenium-distributor | 17:00:34.917 INFO [LocalDistributor.newSession] - Session request received by the Distributor:
selenium-distributor | [Capabilities {acceptInsecureCerts: true, browserName: firefox, moz:firefoxOptions: {prefs: {remote.active-protocols: 3}}, selenoid:options: {enableVNC: true, enableVideo: true}}]
selenium-distributor | 17:00:39.790 INFO [LocalDistributor.newSession] - Session created by the Distributor. Id: 0e0dcddf-a73b-40e8-a163-dd03c25c6e17
selenium-distributor | Caps: Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 144.0.2, container:hostname: hidden-host-q-int.i..., moz:accessibilityChecks: false, moz:buildID: 20251027123126, moz:firefoxOptions: {prefs: {remote.active-protocols: 3}}, moz:geckodriverVersion: 0.36.0, moz:headless: false, moz:platformVersion: 5.14.0-611.42.1.el9_7.x86_64, moz:processID: 4197, moz:profile: /tmp/rust_mozprofileXT104B, moz:shutdownTimeout: 60000, moz:webdriverClick: true, moz:windowless: false, pageLoadStrategy: normal, platformName: linux, proxy: {}, se:bidiEnabled: false, se:cdpEnabled: false, se:containerName: hidden-host-q-int.i..., se:deleteSessionOnUi: true, se:downloadsEnabled: true, se:noVncPort: 7900, se:vnc: ws://172.17.0.1:4444/sessio..., se:vncEnabled: true, se:vncLocalAddress: ws://172.17.0.1:7900, selenoid:options: {enableVNC: true, enableVideo: true}, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, userAgent: Mozilla/5.0 (X11; Linux x86...}
selenium-distributor | 17:01:41.267 WARN [UnboundZmqEventBus$PollingRunnable.lambda$notifyListeners$2] - Caught exception from listener: org.openqa.selenium.events.EventListener@4baa3061
selenium-distributor | org.openqa.selenium.json.JsonException: Unable to parse: "0e0dcddf-a73b-40e8-a163-dd03c25c6e17"
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:170)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:153)
selenium-distributor | at org.openqa.selenium.events.Event.getData(Event.java:58)
selenium-distributor | at org.openqa.selenium.events.EventListener.accept(EventListener.java:42)
selenium-distributor | at org.openqa.selenium.events.EventListener.accept(EventListener.java:24)
selenium-distributor | at org.openqa.selenium.events.zeromq.UnboundZmqEventBus$PollingRunnable.lambda$notifyListeners$2(UnboundZmqEventBus.java:332)
selenium-distributor | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
selenium-distributor | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
selenium-distributor | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
selenium-distributor | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
selenium-distributor | at java.base/java.lang.Thread.run(Thread.java:1583)
selenium-distributor | Caused by: org.openqa.selenium.json.JsonException: Unable to create instance of class org.openqa.selenium.grid.data.SessionClosedData
selenium-distributor | Build info: version: '4.41.0', revision: '9fc754f90a'
selenium-distributor | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.14.0-611.42.1.el9_7.x86_64', java.version: '21.0.10'
selenium-distributor | Driver info: driver.version: unknown
selenium-distributor | at org.openqa.selenium.json.StaticInitializerCoercer.lambda$apply$0(StaticInitializerCoercer.java:61)
selenium-distributor | at org.openqa.selenium.json.JsonTypeCoercer.coerce(JsonTypeCoercer.java:143)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:205)
selenium-distributor | at org.openqa.selenium.json.Json.toType(Json.java:168)
selenium-distributor | ... 10 more
selenium-distributor | Caused by: java.lang.reflect.InvocationTargetException
selenium-distributor | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:118)
selenium-distributor | at java.base/java.lang.reflect.Method.invoke(Method.java:580)
selenium-distributor | at org.openqa.selenium.json.StaticInitializerCoercer.lambda$apply$0(StaticInitializerCoercer.java:59)
selenium-distributor | ... 13 more
selenium-distributor | Caused by: org.openqa.selenium.json.JsonException: Expected to read a START_MAP but instead have: STRING. Last 0 characters read: , next 38 characters to read: "0e0dcddf-a73b-40e8-a163-dd03c25c6e17"
selenium-distributor | Build info: version: '4.41.0', revision: '9fc754f90a'
selenium-distributor | System info: os.name: 'Linux', os.arch: 'amd64', os.version: '5.14.0-611.42.1.el9_7.x86_64', java.version: '21.0.10'
selenium-distributor | Driver info: driver.version: unknown
selenium-distributor | at org.openqa.selenium.json.JsonInput.expect(JsonInput.java:515)
selenium-distributor | at org.openqa.selenium.json.JsonInput.beginObject(JsonInput.java:363)
selenium-distributor | at org.openqa.selenium.grid.data.SessionClosedData.fromJson(SessionClosedData.java:144)
selenium-distributor | at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
selenium-distributor | ... 15 more
Sessions Id not being released
How do you trigger this bug ?
When running any test on any programming language.
What did you expect to happen ?
Expect the sessions are released at end of test when driver.quit() is called or when I call
curl --request DELETE http://localhost:4444/session/<SESSION_ID>
Tests run normally but the sessions are not released at end of tests. The session slot become full and no other test is able to start. Then I restart selenium-distributor container in order to clean the sessions.
I am able to list the sessions ID through curl --request GET 'http://localhost:4444/status'
but deletion return message:
curl --request DELETE http://localhost:4444/wd/hub/session/e1d792ba-5f1c-4403-aa9b-3145a69919fe --header 'X-REGISTRATION-SECRET'
{
"value": {
"message": "Cannot find session with id: e1d792ba-5f1c-4403-aa9b-3145a69919fe",
"stacktrace": "",
"error": "invalid session id"
}
NOTE: The same configuration running at version 4.38.0-20251101 works fine
Command used to start Selenium Grid with Docker (or Kubernetes)
services: selenium-event-bus: image: selenium/event-bus:4.41.0-20260222 network_mode: 'host' restart: unless-stopped container_name: 'selenium-event-bus' logging: driver: 'journald' options: tag: 'docker_container: containerName=selenium-event-bus' selenium-sessions: image: selenium/sessions:4.41.0-20260222 network_mode: 'host' restart: unless-stopped container_name: 'selenium-sessions' depends_on: - selenium-event-bus environment: - SE_EVENT_BUS_HOST=localhost logging: driver: 'journald' options: tag: 'docker_container: containerName=selenium_sessions' selenium-session-queue: image: selenium/session-queue:4.41.0-20260222 network_mode: 'host' restart: unless-stopped container_name: 'selenium-session-queue' logging: driver: 'journald' options: tag: 'docker_container: containerName=selenium_session_queue' selenium-distributor: image: selenium/distributor:4.41.0-20260222 network_mode: 'host' restart: unless-stopped container_name: 'selenium-distributor' depends_on: - selenium-event-bus - selenium-sessions - selenium-session-queue environment: - SE_EVENT_BUS_HOST=localhost - SE_SESSIONS_MAP_HOST=localhost - SE_SESSION_QUEUE_HOST=localhost logging: driver: 'journald' options: tag: 'docker_container: containerName=selenium_distributor' selenium-router: image: selenium/router:4.41.0-20260222 network_mode: 'host' restart: unless-stopped container_name: 'selenium-router' depends_on: - selenium-distributor - selenium-sessions - selenium-session-queue environment: - SE_DISTRIBUTOR_HOST=localhost - SE_SESSIONS_MAP_HOST=localhost - SE_SESSION_QUEUE_HOST=localhost logging: driver: 'journald' options: tag: 'docker_container: containerName=selenium_router' chrome: image: selenium/node-chrome:136.0-20251101 network_mode: 'host' restart: unless-stopped container_name: 'chrome' platform: linux/amd64 shm_size: 2gb depends_on: - selenium-event-bus volumes: - /etc/ssl:/etc/ssl:ro environment: - SE_EVENT_BUS_HOST=localhost - SE_NO_VNC_PORT=7900 - SE_NODE_PORT=5560 - SE_VNC_NO_PASSWORD=true - SE_VNC_VIEW_ONLY=true - SE_NODE_MAX_SESSIONS=5 logging: driver: 'journald' options: tag: 'docker_container: containerName=chrome' edge: image: selenium/node-edge:142.0-20251101 network_mode: 'host' restart: unless-stopped container_name: 'edge' platform: linux/amd64 shm_size: 2gb depends_on: - selenium-event-bus volumes: - /etc/ssl:/etc/ssl:ro environment: - SE_EVENT_BUS_HOST=localhost - SE_NO_VNC_PORT=7901 - SE_NODE_PORT=5562 - SE_VNC_NO_PASSWORD=true - SE_VNC_VIEW_ONLY=true - SE_NODE_MAX_SESSIONS=5 logging: driver: 'journald' options: tag: 'docker_container: containerName=edge' firefox: image: selenium/node-firefox:144.0.2-20251101 network_mode: 'host' restart: unless-stopped container_name: 'firefox' shm_size: 2gb depends_on: - selenium-event-bus volumes: - /etc/ssl:/etc/ssl:ro environment: - SE_EVENT_BUS_HOST=localhost - SE_NO_VNC_PORT=7902 - SE_NODE_PORT=5564 - SE_VNC_NO_PASSWORD=true - SE_VNC_VIEW_ONLY=true - SE_NODE_MAX_SESSIONS=5 logging: driver: 'journald' options: tag: 'docker_container: containerName=firefox'Relevant log output
Operating System
RedHat 9.7 - docker-ce-28.5.2-1
Docker Selenium version (image tag)
4.41.0-20260222
Selenium Grid chart version (chart version)
No response