How is working mapping deviceName capability in Selenium Grid 4

Setup Selenium Hub version(image: selenium/hub:4.2.2) with two selenium node(selenium/node-docker:4.2.2). Each selenium node connects to real mac-mini. Each of selenium node has own config with define scope simulators.

Example config for selenium node 1:
configs = [
“1”, “{“appium:deviceName”: “iPhone 8”, “platformName”: “iOS”, “platformVersion”: “15.2”}”,
“1”, “{“appium:deviceName”: “iPhone X”, “platformName”: “iOS”, “platformVersion”: “15.2”}”
]

Example config fo selenium node 2:
configs = [
“1”, “{“appium:deviceName”: “iPhone 13”, “platformName”: “iOS”, “platformVersion”: “15.2”}”,
“1”, “{“appium:deviceName”: “iPhone 12”, “platformName”: “iOS”, “platformVersion”: “15.2”}”,
“1”, “{“appium:deviceName”: “iPhone 11”, “platformName”: “iOS”, “platformVersion”: “15.2”}”
]

Appium capabilities {appium:automationName: XCuiTest, appium:clearSystemFiles: true, appium:deviceName: iPhone X, appium:fullReset: true, appium:newCommandTimeout: 220, appium:platformVersion: 15.2, appium:wdaLocalPort: 8007, platformName: iOS, platformVersion: 15.2}

The issue is selenium server sends a request to one of simulator not considered provided deviceName capability. For example, the client defines deviceName": “iPhone X” but the selenium server sends the request to selenium node 2. Could anyone help to define the correct configs for valid rout requests between selenium nodes?