Overridden Appium Capabilities
The Digital.ai Testing platform automatically overrides specific Appium capabilities during session creation to ensure reliable execution, proper session management, and parallel test stability.
User specified values for these capabilities are ignored, as they may conflict with platform managed functionality and lead to unexpected behavior, unstable execution, or session failures.
Appium Capabilities Overridden during Execution
The following capabilities are overwritten by Digital.ai during execution, with the platform-managed values and the reason for each override.
| Capability | Overridden value | Why it is overridden |
|---|---|---|
wdaStartupRetries | 0 | We set wdaStartupRetries to 0 to avoid Appium retry loops, which can result in extended delays during WDA startup failures.Client-side retries are disabled, and restart handling is managed internally to support session recovery. |
newCommandTimeout | 0 | We set newCommandTimeout to 0 to prevent Appium from terminating the session due to inactivity. Session lifecycle and timeout management are handled by the platform. |
fullReset | false | We set fullReset to false to avoid uninstalling and reinstalling the app for each session, as app state management and reset operations are already handled by the platform during session initialization. |
usePrebuiltWDA | true | We enable usePrebuiltWDA=true to use a prebuilt and signed WDA already available on the device, instead of building it during session startup. This reduces startup time and improves reliability in cloud-based executions. |
chromedriverPort | Dynamic unique port per Android device/session | We assign a unique chromedriverPort to each Android device or session to prevent port conflicts during parallel WebView execution. Without dedicated ports, multiple Chromedriver instances can interfere with one another, resulting in connection failures and errors such as Could not proxy command to the remote server or socket hang up. |
wdaLocalPort | Dynamic unique port per iOS session/device | We assign a unique wdaLocalPort to each iOS session because WebDriverAgent communication ports cannot be shared across parallel sessions. Reusing the same port can cause Appium to terminate existing WDA connections, leading to session instability, communication failures, and unexpected session interruptions. |
mjpegServerPort | Dynamic unique port per iOS session/device | We assign a unique mjpegServerPort to each iOS session to isolate the WebDriverAgent MJPEG streaming connection used for screenshots and live screen streaming. Sharing the same port across parallel sessions can lead to stream conflicts, failed screenshot capture, disrupted screen streaming, and unstable session behavior. |