Mobile object spy wouldn't work. Stuck on "executing command"

katalon version 8.2.5
Appium Version - 1.22.3

Need help to know the supported appium version for the said katalon studio version. I was able to use object spy few days back but then lately the object spy or mobile recorder just wouldn’t work.

Error: Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: timeout of 240000ms exceeded
Build info: version: ‘unknown’, revision: ‘unknown’, time: ‘unknown’

Error: com.kms.katalon.composer.mobile.recorder.exceptions.MobileRecordException: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: timeout of 240000ms exceeded

Build info: version: ‘unknown’, revision: ‘unknown’, time: ‘unknown’

System info: host: ‘Bals-MacBook-Pro.local’, ip: ‘fe80:0:0:0:f5:5697:8244:3839%en0’, os.name: ‘Mac OS X’, os.arch: ‘x86_64’, os.version: ‘10.16’, java.version: ‘1.8.0_275’

Driver info: com.kms.katalon.core.appium.driver.SwipeableAndroidDriver

Capabilities {appActivity: .Settings, appPackage: com.android.settings, autoGrantPermissions: true, automationName: uiautomator2, chromedriverPort: 64665, databaseEnabled: false, desired: {appActivity: .Settings, appPackage: com.android.settings, autoGrantPermissions: true, automationName: uiautomator2, chromedriverPort: 64665, deviceName: Xiaomi M2101K7AI (Android 12), newCommandTimeout: 1800, platform: ANDROID, platformName: android, platformVersion: 12, systemPort: 8240, udid: 2526bb1e}, deviceApiLevel: 31, deviceManufacturer: Xiaomi, deviceModel: M2101K7AI, deviceName: 2526bb1e, deviceScreenDensity: 440, deviceScreenSize: 1080x2400, deviceUDID: 2526bb1e, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: true, newCommandTimeout: 1800, pixelRatio: 2.75, platform: ANDROID, platformName: Android, platformVersion: 12, statBarHeight: 93, systemPort: 8240, takesScreenshot: true, udid: 2526bb1e, viewportRect: {height: 2170, left: 0, top: 93, width: 1080}, warnings: {}, webStorageEnabled: false}

Session ID: dd404e85-5d93-4ed1-ae6c-53ac23ba3743

*** Element info: {Using=-android uiautomator, value=new UiSelector().className(“android.widget.ImageView”)}

at com.kms.katalon.composer.mobile.recorder.components.MobileRecorderDialog.performAction(MobileRecorderDialog.java:693)

at com.kms.katalon.composer.mobile.recorder.components.MobileRecorderDialog.lambda$2(MobileRecorderDialog.java:492)

at com.kms.katalon.composer.mobile.recorder.components.MobileActionButtonWrapper$1.widgetSelected(MobileActionButtonWrapper.java:33)

at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)

at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4385)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)

at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)

at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3789)

at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)

at org.eclipse.jface.window.Window.open(Window.java:799)

at com.kms.katalon.composer.mobile.recorder.components.MobileRecorderDialog.open(MobileRecorderDialog.java:1471)

at com.kms.katalon.composer.mobile.recorder.handlers.OpenAndroidRecorderHandler.openRecorderDialog(OpenAndroidRecorderHandler.java:102)

at com.kms.katalon.composer.mobile.recorder.handlers.OpenAndroidRecorderHandler.execute(OpenAndroidRecorderHandler.java:91)

at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)

at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:319)

at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:253)

at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)

at org.eclipse.e4.ui.workbench.renderers.swt.DirectContributionItem.executeItem(DirectContributionItem.java:133)

at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:449)

at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)

at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4385)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)

at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)

at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3789)

at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.dropdownEvent(AbstractContributionItem.java:425)

at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:436)

at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:475)

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)

at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4385)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)

at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)

at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3789)

at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1158)

at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)

at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1047)

at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)

at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)

at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)

at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)

at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)

at com.kms.katalon.core.application.WorkbenchApplicationStarter.start(WorkbenchApplicationStarter.java:23)

at com.kms.katalon.application.Application.runGUI(Application.java:191)

at com.kms.katalon.application.Application.start(Application.java:102)

at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)

at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)

at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)

at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)

at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)

at org.eclipse.equinox.launcher.Main.run(Main.java:1447)

Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: timeout of 240000ms exceeded

Build info: version: ‘unknown’, revision: ‘unknown’, time: ‘unknown’

System info: host: ‘Bals-MacBook-Pro.local’, ip: ‘fe80:0:0:0:f5:5697:8244:3839%en0’, os.name: ‘Mac OS X’, os.arch: ‘x86_64’, os.version: ‘10.16’, java.version: ‘1.8.0_275’

Driver info: com.kms.katalon.core.appium.driver.SwipeableAndroidDriver

Capabilities {appActivity: .Settings, appPackage: com.android.settings, autoGrantPermissions: true, automationName: uiautomator2, chromedriverPort: 64665, databaseEnabled: false, desired: {appActivity: .Settings, appPackage: com.android.settings, autoGrantPermissions: true, automationName: uiautomator2, chromedriverPort: 64665, deviceName: Xiaomi M2101K7AI (Android 12), newCommandTimeout: 1800, platform: ANDROID, platformName: android, platformVersion: 12, systemPort: 8240, udid: 2526bb1e}, deviceApiLevel: 31, deviceManufacturer: Xiaomi, deviceModel: M2101K7AI, deviceName: 2526bb1e, deviceScreenDensity: 440, deviceScreenSize: 1080x2400, deviceUDID: 2526bb1e, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: true, newCommandTimeout: 1800, pixelRatio: 2.75, platform: ANDROID, platformName: Android, platformVersion: 12, statBarHeight: 93, systemPort: 8240, takesScreenshot: true, udid: 2526bb1e, viewportRect: {height: 2170, left: 0, top: 93, width: 1080}, warnings: {}, webStorageEnabled: false}

Session ID: dd404e85-5d93-4ed1-ae6c-53ac23ba3743

*** Element info: {Using=-android uiautomator, value=new UiSelector().className(“android.widget.ImageView”)}

at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)

at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)

at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)

at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)

at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)

at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)

at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)

at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)

at com.kms.katalon.core.appium.driver.SwipeableAndroidDriver.execute(SwipeableAndroidDriver.java:1)

at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:353)

at io.appium.java_client.DefaultGenericMobileDriver.findElements(DefaultGenericMobileDriver.java:54)

at io.appium.java_client.AppiumDriver.findElements(AppiumDriver.java:152)

at io.appium.java_client.FindsByAndroidUIAutomator.findElementsByAndroidUIAutomator(FindsByAndroidUIAutomator.java:51)

at com.kms.katalon.composer.mobile.objectspy.element.impl.AndroidSnapshotMobileElement.buildLocator(AndroidSnapshotMobileElement.java:262)

at com.kms.katalon.composer.mobile.objectspy.element.impl.RenderedTreeSnapshotMobileElement.newCapturedElement(RenderedTreeSnapshotMobileElement.java:104)

at com.kms.katalon.composer.mobile.recorder.components.MobileRecorderDialog.captureMobileElement(MobileRecorderDialog.java:1441)

at com.kms.katalon.composer.mobile.recorder.components.MobileRecorderDialog$5$1.call(MobileRecorderDialog.java:590)

at com.kms.katalon.composer.components.impl.dialogs.ProgressMonitorDialogWithThread.startThreadAndWait(ProgressMonitorDialogWithThread.java:36)

at com.kms.katalon.composer.components.impl.dialogs.ProgressMonitorDialogWithThread.runAndWait(ProgressMonitorDialogWithThread.java:48)

at com.kms.katalon.composer.mobile.recorder.components.MobileRecorderDialog$5.run(MobileRecorderDialog.java:585)

at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

Download v8.3.5 and try again

Did that. same issue. some of the elements are tappable but mostly the katalon recorder fails to tap or interact.
Same if I use just the object spy. Takes forever to record objects.

Is it working fine for you?

Yes it’s working fine at my end. Let’s give it a try-
Solution:

  1. Install Webdriveragent. For iOS Device.
  2. Kill the running appium proccesses with the following command:
    killall -9 node
  3. Start the AUT again.