Skip to content
Latchkey

Selenium Grid "Unable to find provider for session ... No nodes matching" in CI

The Grid hub matches a session request to a node that advertises the requested capabilities. If no registered node offers that browser name, version, or platform, the hub rejects the request because there is no slot that matches.

What this error means

The test fails with "org.openqa.selenium.SessionNotCreatedException: Unable to find provider for session" or "Could not start a new session. No nodes matching the requested capabilities" naming the browser.

selenium
SessionNotCreatedException: Could not start a new session.
No nodes matching the requested capabilities {browserName: firefox, browserVersion: 126} were found.
Build info: version: '4.21.0'

Common causes

No node offers the requested browser or version

The capabilities ask for a browser/version no registered node advertises, so the hub finds no matching slot.

Nodes did not register with the hub

The node containers never connected to the hub (timing or network), so the Grid has zero slots when the request arrives.

How to fix it

Request capabilities a node actually offers

  1. Open the Grid console or /status to see registered node capabilities.
  2. Drop an over-specific browserVersion, or register a node for the browser you need.
  3. Re-run so the request matches an available slot.
python
# request only the browser name unless a specific version node exists
caps = {"browserName": "firefox"}

Wait until nodes have registered

Poll the Grid until it reports nodes and is ready, so requests do not arrive before any node registers.

.github/workflows/ci.yml
- run: |
    for i in $(seq 1 30); do
      curl -sf http://grid-hub:4444/status | grep -q '"ready": *true' && break || sleep 2
    done

How to prevent it

  • Only request browser versions that a registered node advertises.
  • Wait for node registration before dispatching sessions.
  • Scale node replicas to the parallelism your suite needs.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →