iOS on Device Farm: Unknown device or simulator UDID


I have a React Native app that I am building for both Android and iOS to test in Device Farm, and an Appium test suite which uses the WebdriverIO test runner, and I have everything configured to test against Android devices in Device Farm and it's working great, but when I try and start a test run for iOS, every single device fails when the WebdriverIO test runner tries to start with this message:

Request failed with status 500 due to An unknown server-side error occurred while processing the command. Original error: Unknown device or simulator UDID: '00008120-0000443836B8C01E'

Since I am not setting the UDID, this value is coming from Device Farm itself, I am not sure how I can fix this. Any suggestions? Thank you!

asked a year ago745 views
1 Answer


Please note that webdriver agent requires the uuid without hyphens : You also would need to make sure that you are using webdriver agent from DeviceFarm instead of the appium one.

$DEVICEFARM_DEVICE_UDID_FOR_APPIUM is the uuid without "-". Could you please provide me with capabilities.js configuration file? What is the value set for udid? Can you try replacing "udid":"$DEVICEFARM_DEVICE_UDID" to "udid":"$DEVICEFARM_DEVICE_UDID_FOR_APPIUM" and let me know if the issue persists?

If you are still facing any issues I would suggest reaching out to AWS Support with the failed Job ARNs and capabilities.js configuration file.

answered a year ago
  • Sorry I didn't make this clear: I am not providing a UDID at all, I'm relying on Device Farm to provide this, so I'm surprised that it would be wrong since it's coming from Device Farm itself.

  • My wdio.conf.ts looks like:

      runner: 'local',
      autoCompileOpts: {
        autoCompile: true,
        tsNodeOpts: {
          project: './tsconfig.json',
          transpileOnly: true,
      port: 4723,
      specs: ['./src/specs/**/*.ts'],
      exclude: [],
      maxInstances: 10,
      capabilities: [
          // devicefarm fills out most of the capabilities automatically
          maxInstances: 1,
      // Level of logging verbosity: trace | debug | info | warn | error | silent
      logLevel: 'debug',
      bail: 0,
      baseUrl: 'http://localhost',
      path: '/wd/hub',

    (plus a bit of boilerplate)

  • Following up: I did try adding udid: $DEVICEFARM_DEVICE_UDID_FOR_APPIUM, to my capabilities, but then I just got a new error:

    ReferenceError: $DEVICEFARM_DEVICE_UDID_FOR_APPIUM is not defined

    Where did you get this information from?

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions