Using Appium with Selenium Grid and multiple real Android devices

Hi Appium,

I am trying to run tests on multiple physical devices (2 Android phones) using Selenium Grid and Appium 1.4.0 . My grid’s hub and nodes are currently set up on the same machine (running Windows 7). I wrote my tests in Visual Studio and call them using Jenkins/MSBuild. When I attempt to run the tests, Appium responds with the error “Command failed: more than one device and emulator”. I assigned a unique udid to each node corresponding to the ids of the connected devices, and added the udid capability in my tests (hardcoded just for testing purposes). I followed any available tutorials and looked over some other forum posts in an attempt to diagnose my particular problem but haven’t found a solution yet. Does anyone have any experience with this error?

Let me know if I can provide any more information. Thanks in advance!

Just a shot in the dark:

If everything works as it should, you should see something like the following in your Selenium Grid logs

18:36:40.806 INFO - Got a request to create a new session: Capabilities [{count=1, browserName=Browser, platformName=ANDROID, udid=001951ff3e126e, deviceName=}]
18:36:40.808 INFO - Trying to create a new session on test slot {browserName=Browser, udid=001951ff3e126e, deviceName=DN-001951ff3e126e, platform=ANDROID}

Do you see any of it? The error sounds to me like the capability matcher wasn’t sure which device to use.
Do the nodes have their own port, bootstrap port and chromedriver port?

My Grid hub was able to select the desired node if I specified a UDID, and it gave that exact output. The node would then get confused as to which device to connect to for some reason, even though I provided the device UDID, bootstrap port and chromedriver port.