## TL;DR
The node is almost always failing to reach the hub, not failing to start. Check the hub URL the node was given, then check the event-bus ports between them. A node that starts but never appears in the Grid UI is a connectivity problem nine times out of ten.

## Problem
The Selenium Grid 4 hub is up and the node process starts, but the node never shows as registered.

## Steps
1. Open the Grid UI status page and confirm the hub itself is healthy. Expected: the hub console loads and shows zero nodes.
2. Check the exact hub URL passed to the node, for example YOUR_HOST. Expected: the URL is reachable from the node machine via curl.
3. Verify the event-bus ports 4442 and 4443, plus node port 5557, are open between hub and node. Expected: connections succeed on all three.
4. Match Selenium versions on hub and node; mixed 4.x minors can refuse to pair. Expected: the selenium-server version output matches on both sides.
5. Restart the node with fine-grained logging and read the registration lines. Expected: logs show a successful publish to the hub or the exact refused address.

## When to use
- A Selenium Grid 4 node starts but never appears in the hub console.
- Scaling out to new node machines or containers.
- After upgrading the Selenium server jar on one side only.

## When not to use
- Sessions fail but nodes show as registered; that is a session-queue or capability-matching issue.
- You run standalone mode; there is no hub to register with.
- The hub itself will not start; fix the hub first.

## Tool compatibility
- Selenium 4.x Grid: hub and node roles via the selenium-server jar.
- Event-bus ports 4442 and 4443, node port 5557 by default.

## Variant phrasings
### selenium grid node not connecting to hub
Same diagnosis path; URL and ports first, versions second.
### grid shows 0 nodes registered
Confirm you are looking at the right hub; duplicate hubs on a network are a classic mix-up.

## Why it happens
Grid 4 registration is the node publishing itself to the hub over the event bus. Anything that breaks that path, a wrong hub address, blocked ports, or a version mismatch, leaves a running node invisible to the hub.

## Edge cases
- In Docker the node must use the hub's container-network address, not the external host address.
- Reverse proxies in front of the hub need websocket-friendly config for the event bus.
- A node that registers then vanishes is usually being out-of-memory killed; check container memory.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_0YzMWdMA5-__2u8KGPDpHw
