Selenium hub seems to be routing same desired capabilities to both nodes

I am running appium parallel test using Selenium grid. For some reason both my nodes are getting the same device name through desired capabilities. I get following error in hub:

15:31:56.640 INFO [RequestHandler.process] - Got a request to create a new session: Capabilities {appActivity: crc6429e3927486beccbc.Activ..., appPackage: CP.Android, autoGrantPermissions: true, automationName: uiautomator2, deviceName: R52N20VDN, newCommandTimeout: 5000, noReset: true, platformName: android, platformVersion: 10.0, resetKeyboard: true, systemPort: 8202, udid: R52N20VDN, unicodeKeyboard: true}
15:31:56.640 INFO [RequestHandler.process] - Got a request to create a new session: Capabilities {appActivity: crc6429e3927486beccbc.Activ..., appPackage: CP.Android, autoGrantPermissions: true, automationName: uiautomator2, deviceName: R52N207XK, newCommandTimeout: 5000, noReset: true, platformName: android, platformVersion: 10.0, resetKeyboard: true, systemPort: 8203, udid: R52N207XK, unicodeKeyboard: true}
15:31:56.640 INFO [TestSlot.getNewSession] - Trying to create a new session on test slot {server:CONFIG_UUID=7e3ab9af-c562-42ee-aa18-c603d452cec7, seleniumProtocol=WebDriver, platformVersion=10, automationName=UiAutomator2, browserName=Android, maxInstances=1, platformName=ANDROID, deviceName=R52N20VDN, platform=ANDROID, systemPort=8202}
15:31:56.655 INFO [TestSlot.getNewSession] - Trying to create a new session on test slot {server:CONFIG_UUID=d67495f6-f6d3-4437-865d-6c5a41379d42, seleniumProtocol=WebDriver, platformVersion=10.0, automationName=UiAutomator2, browserName=Android, maxInstances=1, platformName=ANDROID, deviceName=R52N207XK, platform=ANDROID, systemPort=8203}
15:32:56.661 INFO [RequestHandler.process] - Error forwarding the new session Error forwarding the request timeout
org.openqa.grid.internal.exception.NewSessionException: Error forwarding the request timeout
        at org.openqa.grid.web.servlet.handler.RequestHandler.forwardNewSessionRequestAndUpdateRegistry(RequestHandler.java:94)
        at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:114)
        at org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:85)
        at org.openqa.grid.web.servlet.DriverServlet.doPost(DriverServlet.java:69)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:865)
        at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:535)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
        at org.seleniumhq.jetty9.security.SecurityHandler.handle(SecurityHandler.java:548)
        at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
        at org.seleniumhq.jetty9.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
        at org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
        at org.seleniumhq.jetty9.servlet.ServletHandler.doScope(ServletHandler.java:473)
        at org.seleniumhq.jetty9.server.session.SessionHandler.doScope(SessionHandler.java:1564)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
        at org.seleniumhq.jetty9.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
        at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
        at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.seleniumhq.jetty9.server.Server.handle(Server.java:503)
        at org.seleniumhq.jetty9.server.HttpChannel.handle(HttpChannel.java:364)
        at org.seleniumhq.jetty9.server.HttpConnection.onFillable(HttpConnection.java:260)
        at org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
        at org.seleniumhq.jetty9.io.FillInterest.fillable(FillInterest.java:103)
        at org.seleniumhq.jetty9.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
        at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
        at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
        at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
        at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
        at org.seleniumhq.jetty9.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
        at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
        at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketTimeoutException: timeout
        at okio.Okio$4.newTimeoutException(Okio.java:232)
        at okio.AsyncTimeout.exit(AsyncTimeout.java:285)
        at okio.AsyncTimeout$2.read(AsyncTimeout.java:241)
        at okio.RealBufferedSource.indexOf(RealBufferedSource.java:355)
        at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:227)
        at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:215)
        at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
        at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at org.openqa.selenium.remote.internal.OkHttpClient$Factory$1.lambda$createClient$1(OkHttpClient.java:152)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
        at okhttp3.RealCall.execute(RealCall.java:77)
        at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:103)
        at org.openqa.grid.internal.TestSession.sendRequestToNode(TestSession.java:422)
        at org.openqa.grid.internal.TestSession.forward(TestSession.java:229)
        at org.openqa.grid.web.servlet.handler.RequestHandler.forwardNewSessionRequestAndUpdateRegistry(RequestHandler.java:91)
        ... 35 more
Caused by: java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.socketRead(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at okio.Okio$2.read(Okio.java:140)
        at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
        ... 61 more

The error in my node that should have gotten R52N20VDN device name is as follows:

[debug] [WD Proxy] Matched '/status' to command name 'getStatus'
[debug] [WD Proxy] Proxying [GET /status] to [GET http://127.0.0.1:8203/wd/hub/status] with no body
[debug] [WD Proxy] Got response with status 200: {"sessionId":"None","value":{"message":"UiAutomator2 Server is ready to accept commands","ready":true}}
[debug] [UiAutomator2] The initialization of the instrumentation process took 2087ms
[debug] [WD Proxy] Matched '/session' to command name 'createSession'
[debug] [WD Proxy] Proxying [POST /session] to [POST http://127.0.0.1:8203/wd/hub/session] with body: {"capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","server:CONFIG_UUID":"7e3ab9af-c562-42ee-aa18-c603d452cec7","appPackage":"Nalu.CP.Android","noReset":true,"deviceName":"R52N20AM7XK","appActivity":"crc6429e3927486beccbc.ActivityLicenseBrowse","newCommandTimeout":5000,"platformVersion":"10.0","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"R52N20AM7XK","resetKeyboard":true,"systemPort":8203},"platformName":"android","server:CONFIG_UUID":"7e3ab9af-c562-42ee-aa18-c603d452cec7","appPackage":"Nalu.CP.Android","noReset":true,"deviceName":"R52N20AM7XK","appActivity":"crc6429e3927486beccbc.ActivityLicenseBrowse","newCommandTimeout":5000,"platformVersion":"10.0","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"R52N20AM7XK",...
[debug] [WD Proxy] Got response with status 200: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":{"capabilities":{"firstMatch":[{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","server:CONFIG_UUID":"7e3ab9af-c562-42ee-aa18-c603d452cec7","appPackage":"Nalu.CP.Android","noReset":true,"deviceName":"R52N20AM7XK","appActivity":"crc6429e3927486beccbc.ActivityLicenseBrowse","newCommandTimeout":5000,"platformVersion":"10.0","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"R52N20AM7XK","resetKeyboard":true,"systemPort":8203},"platformName":"android","server:CONFIG_UUID":"7e3ab9af-c562-42ee-aa18-c603d452cec7","appPackage":"Nalu.CP.Android","noReset":true,"deviceName":"R52N20AM7XK","appActivity":"crc6429e3927486beccbc.ActivityLicenseBrowse","newCommandTimeout":5000,"platformVersion":"10.0","automationName":"uiautomator2","autoGrantPe...
[WD Proxy] Determined the downstream protocol as 'W3C'
[debug] [WD Proxy] Proxying [GET /appium/device/info] to [GET http://127.0.0.1:8203/wd/hub/session/accd6fbe-e0c3-47b5-9b05-cb745bfc5922/appium/device/info] with no body
[debug] [WD Proxy] Got response with status 200: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":{"androidId":"dd0dc29438cebd0b","apiVersion":"29","bluetooth":{"state":"ON"},"brand":"samsung","carrierName":"","displayDensity":360,"locale":"en_US","manufacturer":"samsung","model":"SM-T860","networks":[],"platformVersion":"10","realDisplaySize":"2560x1600","timeZone":"America/Los_Angeles"}}
[debug] [ADB] Running 'C:\Users\skhandekar\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52N20AM7XK shell dumpsys window'
[AndroidDriver] Screen already unlocked, doing nothing
[UiAutomator2] Starting 'Nalu.CP.Android/crc6429e3927486beccbc.ActivityLicenseBrowse and waiting for 'Nalu.CP.Android/crc6429e3927486beccbc.ActivityLicenseBrowse'
[debug] [ADB] Running 'C:\Users\skhandekar\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52N20AM7XK shell am start -W -n Nalu.CP.Android/crc6429e3927486beccbc.ActivityLicenseBrowse -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000'
[HTTP] --> GET /wd/hub/status
[HTTP] {}
[debug] [GENERIC] Calling AppiumDriver.getStatus() with args: []
[debug] [GENERIC] Responding to client with driver.getStatus() result: {"build":{"version":"1.22.0"}}
[HTTP] <-- GET /wd/hub/status 200 2 ms - 68
[HTTP]
[debug] [WD Proxy] Proxying [GET /appium/device/pixel_ratio] to [GET http://127.0.0.1:8203/wd/hub/session/accd6fbe-e0c3-47b5-9b05-cb745bfc5922/appium/device/pixel_ratio] with no body
[debug] [WD Proxy] Got response with status 200: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":2.25}
[debug] [WD Proxy] Matched '/appium/device/system_bars' to command name 'getSystemBars'
[debug] [WD Proxy] Proxying [GET /appium/device/system_bars] to [GET http://127.0.0.1:8203/wd/hub/session/accd6fbe-e0c3-47b5-9b05-cb745bfc5922/appium/device/system_bars] with no body
[debug] [WD Proxy] Got response with status 200: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":{"statusBar":54}}
[debug] [WD Proxy] Matched '/window/current/size' to command name 'getWindowSize'
[debug] [WD Proxy] Proxying [GET /window/current/size] to [GET http://127.0.0.1:8203/wd/hub/session/accd6fbe-e0c3-47b5-9b05-cb745bfc5922/window/current/size] with no body
[debug] [WD Proxy] Got response with status 200: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":{"height":1492,"width":2560}}
[Appium] New AndroidUiautomator2Driver session created successfully, session a78dbc28-5b0b-49cf-8932-8982cc6a6a06 added to master session list
[debug] [BaseDriver] Event 'newSessionStarted' logged at 1636848650101 (16:10:50 GMT-0800 (Pacific Standard Time))
[debug] [W3C (a78dbc28)] Cached the protocol value 'W3C' for the new session a78dbc28-5b0b-49cf-8932-8982cc6a6a06
[debug] [W3C (a78dbc28)] Responding to client with driver.createSession() result: {"capabilities":{"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","server:CONFIG_UUID":"7e3ab9af-c562-42ee-aa18-c603d452cec7","appPackage":"Nalu.CP.Android","noReset":true,"deviceName":"R52N20AM7XK","appActivity":"crc6429e3927486beccbc.ActivityLicenseBrowse","newCommandTimeout":5000,"platformVersion":"10.0","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"R52N20AM7XK","resetKeyboard":true,"systemPort":8203},"platformName":"android","server:CONFIG_UUID":"7e3ab9af-c562-42ee-aa18-c603d452cec7","appPackage":"Nalu.CP.Android","noReset":true,"deviceName":"R52N20AM7XK","appActivity":"crc6429e3927486beccbc.ActivityLicenseBrowse","newCommandTimeout":5000,"platformVersion":"10","automationName":"uiautomator2","autoGrantPermissions":true,"unicodeKeyboard":true,"udid":"R52N20AM7XK","resetKeyboard":t...
[HTTP] <-- POST /wd/hub/session 200 6404 ms - 1363
[HTTP]
[HTTP] --> GET /wd/hub/status
[HTTP] {}
[debug] [GENERIC] Calling AppiumDriver.getStatus() with args: []
[debug] [GENERIC] Responding to client with driver.getStatus() result: {"build":{"version":"1.22.0"}}
[HTTP] <-- GET /wd/hub/status 200 6 ms - 68
[HTTP]
[HTTP] --> POST /wd/hub/session/a78dbc28-5b0b-49cf-8932-8982cc6a6a06/element
[HTTP] {"value":"#btnAppVersion","using":"css selector"}
[debug] [W3C (a78dbc28)] Calling AppiumDriver.findElement() with args: ["css selector","#btnAppVersion","a78dbc28-5b0b-49cf-8932-8982cc6a6a06"]
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, css selector, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [WD Proxy] Matched '/element' to command name 'findElement'
[debug] [WD Proxy] Proxying [POST /element] to [POST http://127.0.0.1:8203/wd/hub/session/accd6fbe-e0c3-47b5-9b05-cb745bfc5922/element] with body: {"strategy":"-android uiautomator","selector":"new UiSelector().resourceId(\"android:id/btnAppVersion\")","context":"","multiple":false}
[WD Proxy] Got response with status 404: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":{"error":"no such element","message":"An element could not be located on the page using the given search parameters","stacktrace":"io.appium.uiautomator2.common.exceptions.ElementNotFoundException: An element could not be located on the page using the given search parameters\n\tat io.appium.uiautomator2.handler.FindElement.safeHandle(FindElement.java:70)\n\tat io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)\n\tat io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:264)\n\tat io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:258)\n\tat io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:68)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)\n\tat io.netty.chann...
[debug] [W3C] Matched W3C error code 'no such element' to NoSuchElementError
[debug] [W3C (a78dbc28)] Encountered internal error running command: NoSuchElementError: An element could not be located on the page using the given search parameters.
[debug] [W3C (a78dbc28)]     at AndroidUiautomator2Driver.findElOrEls (C:\Users\skhandekar\AppData\Roaming\npm\node_modules\appium\node_modules\appium-android-driver\lib\commands\find.js:75:11)
[debug] [W3C (a78dbc28)]     at runMicrotasks (<anonymous>)
[debug] [W3C (a78dbc28)]     at processTicksAndRejections (internal/process/task_queues.js:97:5)
[HTTP] <-- POST /wd/hub/session/a78dbc28-5b0b-49cf-8932-8982cc6a6a06/element 404 78 ms - 533
[HTTP]
[HTTP] --> POST /wd/hub/session/a78dbc28-5b0b-49cf-8932-8982cc6a6a06/element
[HTTP] {"value":"#btnAppVersion","using":"css selector"}
[debug] [W3C (a78dbc28)] Calling AppiumDriver.findElement() with args: ["css selector","#btnAppVersion","a78dbc28-5b0b-49cf-8932-8982cc6a6a06"]
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, css selector, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [WD Proxy] Matched '/element' to command name 'findElement'
[debug] [WD Proxy] Proxying [POST /element] to [POST http://127.0.0.1:8203/wd/hub/session/accd6fbe-e0c3-47b5-9b05-cb745bfc5922/element] with body: {"strategy":"-android uiautomator","selector":"new UiSelector().resourceId(\"android:id/btnAppVersion\")","context":"","multiple":false}
[WD Proxy] Got response with status 404: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":{"error":"no such element","message":"An element could not be located on the page using the given search parameters","stacktrace":"io.appium.uiautomator2.common.exceptions.ElementNotFoundException: An element could not be located on the page using the given search parameters\n\tat io.appium.uiautomator2.handler.FindElement.safeHandle(FindElement.java:70)\n\tat io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)\n\tat io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:264)\n\tat io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:258)\n\tat io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:68)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)\n\tat io.netty.chann...
[debug] [W3C] Matched W3C error code 'no such element' to NoSuchElementError
[debug] [W3C (a78dbc28)] Encountered internal error running command: NoSuchElementError: An element could not be located on the page using the given search parameters.
[debug] [W3C (a78dbc28)]     at AndroidUiautomator2Driver.findElOrEls (C:\Users\skhandekar\AppData\Roaming\npm\node_modules\appium\node_modules\appium-android-driver\lib\commands\find.js:75:11)
[debug] [W3C (a78dbc28)]     at runMicrotasks (<anonymous>)
[debug] [W3C (a78dbc28)]     at processTicksAndRejections (internal/process/task_queues.js:97:5)
[HTTP] <-- POST /wd/hub/session/a78dbc28-5b0b-49cf-8932-8982cc6a6a06/element 404 69 ms - 533
[HTTP]
[HTTP] --> POST /wd/hub/session/a78dbc28-5b0b-49cf-8932-8982cc6a6a06/element
[HTTP] {"value":"#btnAppVersion","using":"css selector"}
[debug] [W3C (a78dbc28)] Calling AppiumDriver.findElement() with args: ["css selector","#btnAppVersion","a78dbc28-5b0b-49cf-8932-8982cc6a6a06"]
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, css selector, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [WD Proxy] Matched '/element' to command name 'findElement'
[debug] [WD Proxy] Proxying [POST /element] to [POST http://127.0.0.1:8203/wd/hub/session/accd6fbe-e0c3-47b5-9b05-cb745bfc5922/element] with body: {"strategy":"-android uiautomator","selector":"new UiSelector().resourceId(\"android:id/btnAppVersion\")","context":"","multiple":false}
[WD Proxy] Got response with status 404: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":{"error":"no such element","message":"An element could not be located on the page using the given search parameters","stacktrace":"io.appium.uiautomator2.common.exceptions.ElementNotFoundException: An element could not be located on the page using the given search parameters\n\tat io.appium.uiautomator2.handler.FindElement.safeHandle(FindElement.java:70)\n\tat io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)\n\tat io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:264)\n\tat io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:258)\n\tat io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:68)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)\n\tat io.netty.chann...
[debug] [W3C] Matched W3C error code 'no such element' to NoSuchElementError
[debug] [W3C (a78dbc28)] Encountered internal error running command: NoSuchElementError: An element could not be located on the page using the given search parameters.
[debug] [W3C (a78dbc28)]     at AndroidUiautomator2Driver.findElOrEls (C:\Users\skhandekar\AppData\Roaming\npm\node_modules\appium\node_modules\appium-android-driver\lib\commands\find.js:75:11)
[debug] [W3C (a78dbc28)]     at processTicksAndRejections (internal/process/task_queues.js:97:5)
[HTTP] <-- POST /wd/hub/session/a78dbc28-5b0b-49cf-8932-8982cc6a6a06/element 404 70 ms - 497
[HTTP]
[HTTP] --> DELETE /wd/hub/session/a78dbc28-5b0b-49cf-8932-8982cc6a6a06
[HTTP] {}
[debug] [W3C (a78dbc28)] Calling AppiumDriver.deleteSession() with args: ["a78dbc28-5b0b-49cf-8932-8982cc6a6a06"]
[debug] [BaseDriver] Event 'quitSessionRequested' logged at 1636848656796 (16:10:56 GMT-0800 (Pacific Standard Time))
[Appium] Removing session a78dbc28-5b0b-49cf-8932-8982cc6a6a06 from our master session list
[debug] [UiAutomator2] Deleting UiAutomator2 session
[debug] [UiAutomator2] Deleting UiAutomator2 server session
[debug] [WD Proxy] Matched '/' to command name 'deleteSession'
[debug] [WD Proxy] Proxying [DELETE /] to [DELETE http://127.0.0.1:8203/wd/hub/session/accd6fbe-e0c3-47b5-9b05-cb745bfc5922] with no body
[debug] [WD Proxy] Got response with status 200: {"sessionId":"accd6fbe-e0c3-47b5-9b05-cb745bfc5922","value":null}
[debug] [UiAutomator2] Resetting IME to 'io.appium.settings/.UnicodeIME'
[debug] [ADB] Running 'C:\Users\skhandekar\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52N20AM7XK shell ime set io.appium.settings/.UnicodeIME'
[debug] [ADB] Running 'C:\Users\skhandekar\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52N20AM7XK shell am force-stop Nalu.CP.Android'
[debug] [Logcat] Stopping logcat capture
[debug] [ADB] Removing forwarded port socket connection: 8203
[debug] [ADB] Running 'C:\Users\skhandekar\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52N20AM7XK forward --remove tcp:8203'
[UiAutomator2] Restoring hidden api policy to the device default configuration
[debug] [ADB] Running 'C:\Users\skhandekar\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52N20AM7XK shell 'settings delete global hidden_api_policy_pre_p_apps;settings delete global hidden_api_policy_p_apps;settings delete global hidden_api_policy''
[debug] [Instrumentation] .
[debug] [Instrumentation] Time: 10.052
[debug] [Instrumentation]
[debug] [Instrumentation] OK (1 test)
[debug] [Instrumentation] The process has exited with code 0
[debug] [BaseDriver] Event 'quitSessionFinished' logged at 1636848657357 (16:10:57 GMT-0800 (Pacific Standard Time))
[debug] [W3C (a78dbc28)] Received response: null
[debug] [W3C (a78dbc28)] But deleting session, so not returning
[debug] [W3C (a78dbc28)] Responding to client with driver.deleteSession() result: null
[HTTP] <-- DELETE /wd/hub/session/a78dbc28-5b0b-49cf-8932-8982cc6a6a06 200 564 ms - 14
[HTTP]

Do you have multiple phones on the same machine or different machines, and if on the same machine, are you using a single appium process, or multiple? We currently setup our grid with a single appium instance per phone (we have 10 iPhones, and 10 Androids connected to 3 centos machines, and 4 mac minis).

@bennid Just wonder why you need so many physical machines for just 20 phones?

We are using single appium instance per tablet.

TLDR; ensuring a single machine going down won’t bring down more than 4 phones.

We use multiple machines as we were having networking issues with our mac minis initially (we had the 20 phones using 3 machines that we scavenged around the office). We also ran into charging issues with the iPhones. We ended up putting a single iPhone on a mac mini so we can more easily test newer iOS versions only on that phone, and update XCode, OSX, and Appium in a controlled environment. We then had some disk issues on 2 of our mac minis, and we were able to get more than 2 to replace them. Then of course Big Sur came out, and we had TONS of networking issues on the mac minis, so replaced the ones controlling the Androids with CentOS7 machines (and our selenium hub and file-server runs on a separate CentOS machine). We like having more machines as well, as then we’re not completely reliant on only 1 or two machines for the whole grid (even with the hub on it’s own machine, we’ve scripted enough to be able to easily move it remotely… not so if a machine goes down with phones connected to it).

@Shruti2, can you include your node configs please? As well as a bit more of the appium log (like the initial session POST call?). Are you calling the createSession with the platformName, or the udid? I think it was mentioned elsewhere, but the selenium grid really only works on the udids, and not the platformName.