Update java-client from 9.2.2 to higher version makes unable to launch any test

I have an Ant formed Appium code that uses ivy file to get the dependencies. My issue is that whenever I launch any TCs using the 9.2.2 version of the java-client library the code works perfectly but as soon as I update it to the 9.2.3 or 9.3.0 version of the code it doesn’t even start prompting the following message

  [testng] org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
   [testng] Host info: host: 'DESKTOP-4LRHHSK', ip: '172.16.0.175'
   [testng] Build info: version: '4.24.0', revision: '748ffc9bc3'
   [testng] System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.2'
   [testng] Driver info: io.appium.java_client.android.AndroidDriver
   [testng] Command: [null, newSession {capabilities=[Capabilities {adbPort: 5037, appActivity: com.my.app.screen...., appPackage: com.my.app, autoGrantPermissions: true, automationName: UiAutomator2, deviceName: Crosscall Core-X5, newCommandTimeout: 20000, noReset: true, platformName: ANDROID, platformVersion: 13, udid: c645d3d6}]}]
   [testng] Capabilities {adbPort: 5037, appActivity: com.my.app...., appPackage: com.my.app, autoGrantPermissions: true, automationName: UiAutomator2, deviceName: Crosscall Core-X5, newCommandTimeout: 20000, noReset: true, platformName: ANDROID, platformVersion: 13, udid: c645d3d6}
   [testng]     at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:563)
   [testng]     at io.appium.java_client.AppiumDriver.startSession(AppiumDriver.java:270)
   [testng]     at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:174)
   [testng]     at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:91)
   [testng]     at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:103)
   [testng]     at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:109)
   [testng]     at com.mcptt.Apps.MCSClientApp.<init>(MCSClientApp.java:120)
   [testng]     at com.mcpttUEtest.DeviceObject.launchMCSClientApp(DeviceObject.java:82)
   [testng]     at com.mcpttUEtest.BaseClass.launchMCSclientTest(BaseClass.java:241)
   [testng]     at com.mcpttUEtest.ReconnectionsCallTest.launchMCSclientTest(ReconnectionsCallTest.java:12)
   [testng]     at com.mcpttUEtest.BaseClass.initParams(BaseClass.java:227)
   [testng]     at com.mcpttUEtest.ReconnectionsCallTest.initParams(ReconnectionsCallTest.java:12)
   [testng]     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   [testng]     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
   [testng]     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   [testng]     at java.base/java.lang.reflect.Method.invoke(Method.java:568)
   [testng]     at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
   [testng]     at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:62)
   [testng]     at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:385)
   [testng]     at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:321)
   [testng]     at org.testng.TestRunner.invokeTestConfigurations(TestRunner.java:637)
   [testng]     at org.testng.TestRunner.beforeRun(TestRunner.java:627)
   [testng]     at org.testng.TestRunner.run(TestRunner.java:589)
   [testng]     at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
   [testng]     at org.testng.SuiteRunner.access$000(SuiteRunner.java:28)
   [testng]     at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:418)
   [testng]     at org.testng.internal.thread.ThreadUtil.lambda$execute$0(ThreadUtil.java:64)
   [testng]     at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
   [testng]     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
   [testng]     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
   [testng]     at java.base/java.lang.Thread.run(Thread.java:833)
   [testng] Caused by: java.lang.IllegalArgumentException: Illegal key values seen in w3c capabilities: [adbPort, appActivity, appPackage, autoGrantPermissions, automationName, deviceName, newCommandTimeout, noReset, platformVersion, udid]
   [testng]     at org.openqa.selenium.remote.NewSessionPayload.lambda$validate$5(NewSessionPayload.java:163)
   [testng]     at java.base/java.util.stream.ReferencePipeline$15$1.accept(ReferencePipeline.java:540)
   [testng]     at java.base/java.util.stream.ReferencePipeline$15$1.accept(ReferencePipeline.java:541)
   [testng]     at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
   [testng]     at java.base/java.util.stream.ReferencePipeline$15$1.accept(ReferencePipeline.java:541)
   [testng]     at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
   [testng]     at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
   [testng]     at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
   [testng]     at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
   [testng]     at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
   [testng]     at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
   [testng]     at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
   [testng]     at org.openqa.selenium.remote.NewSessionPayload.validate(NewSessionPayload.java:167)
   [testng]     at org.openqa.selenium.remote.NewSessionPayload.<init>(NewSessionPayload.java:70)
   [testng]     at org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:99)
   [testng]     at org.openqa.selenium.remote.NewSessionPayload.create(NewSessionPayload.java:84)
   [testng]     at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:60)
   [testng]     at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:176)
   [testng]     at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:237)
   [testng]     at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:545)
   [testng]     ... 30 more

Can’t see your code but would recommend in this case to use UiAutomator2Options to set capabilities like this:

Edit: See bug here:

1 Like
1 Like