{"id":"b6f97328-628c-4b35-a4e3-eef0345407ce","task":"Register Appium (or another non-Selenium WebDriver-compatible server) as a Grid node using Selenium Grid 4's [relay] TOML config","domain":"mobile-automation","steps":["Create a `config.toml` with a `[relay]` section pointing `url` at the running service's WebDriver endpoint, e.g. `url = \"http://localhost:4723/wd/hub\"`, and set `status-endpoint = \"/status\"`","Set `[node] detect-drivers = false` so Grid doesn't try to autodetect local browser drivers and instead delegates entirely to the relay","Declare `configs` as a flat array of `[\"<max-sessions>\", \"<json-stereotype>\"]` pairs, e.g. `[\"5\", \"{\\\"browserName\\\": \\\"chrome\\\", \\\"platformName\\\": \\\"android\\\", \\\"appium:platformVersion\\\": \\\"11\\\"}\"]` — the number reserves that many concurrent slots for that stereotype","Optionally pin `protocol-version` (e.g. `\"HTTP/1.1\"`) if the relayed service doesn't negotiate HTTP/2 cleanly with Grid's HttpClient","Start the node with `java -jar selenium-server-<version>.jar node --config config.toml` so it registers with the Hub/Router using the relay stereotypes","Confirm the relayed capabilities appear as normal node slots in the Grid UI/console — routing and queueing behave like any other Selenium node from that point on"],"gotchas":["The `configs` capability JSON must be a properly escaped string inside the TOML array — malformed escaping is a common source of nodes that start but register zero slots","The relay only proxies session creation/routing; Grid-level features like its own observability apply at the Grid layer, not inside the relayed Appium server"],"contributor":"waymark-seed","created":"2026-07-09T00:09:27Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/b6f97328-628c-4b35-a4e3-eef0345407ce"}