Describe the bug
The device-farm plugin (v10.0.6) fails to handle the getWindowRect command correctly on iOS devices. When the client sends a GET /window/rect request, the plugin intercepts the call but proxies it to an unhandled endpoint on the underlying WebDriverAgent/XCUITest driver. This results in a 404 Not Found error with the message Unhandled endpoint: /session/{id}/window/rect.
The issue seems specific to how device-farm manages the session proxying, as the native XCUITestDriver should normally translate this W3C command to the appropriate internal call. Using mobile: getDeviceScreenSize via executeScript works as a workaround, but the standard getWindowSize() or getWindowRect() methods fail consistently when the plugin is active.
Link to Appium logs
0-0] 2026-01-06T13:12:52.888Z INFO webdriver: Retrying 1/3
[0-0] 2026-01-06T13:12:52.888Z INFO webdriver: [GET] http://127.0.0.1:4723/wd/hub/session/d41f35ba-5be2-45d3-a957-d9521bc906b8/window/rect
[0-0] 2026-01-06T13:12:52.900Z WARN webdriver: Request failed with status 404 due to Unhandled endpoint: /session/95B3DCDB-900E-4852-A648-81900DC4A412/window/rect -- http://127.0.0.1:53331/ with parameters {
[0-0] wildcards = (
[0-0] "session/95B3DCDB-900E-4852-A648-81900DC4A412/window/rect"
[0-0] );
[0-0] }
[0-0] 2026-01-06T13:12:52.900Z INFO webdriver: Retrying 2/3
[0-0] 2026-01-06T13:12:52.900Z INFO webdriver: [GET] http://127.0.0.1:4723/wd/hub/session/d41f35ba-5be2-45d3-a957-d9521bc906b8/window/rect
[0-0] 2026-01-06T13:12:52.913Z WARN webdriver: Request failed with status 404 due to Unhandled endpoint: /session/95B3DCDB-900E-4852-A648-81900DC4A412/window/rect -- http://127.0.0.1:53331/ with parameters {
[0-0] wildcards = (
[0-0] "session/95B3DCDB-900E-4852-A648-81900DC4A412/window/rect"
[0-0] );
[0-0] }
[0-0] 2026-01-06T13:12:52.913Z INFO webdriver: Retrying 3/3
Environment
Appium version: 2.18.0
Last Appium version that did not exhibit the issue: N/A (Tested on 2.18.0)
Node.js version: v22.15
Npm or Yarn package manager: npm
Mobile platform/version under test: iOS 26.1
Real device or emulator/simulator: Real Device
Driver : xcuitest@9.2.1
Appium CLI or Appium.app|exe: Appium CLI
Active Plugins: device-farm@10.0.6, images, execute-driver, relaxed-caps, universal-xml, appium-dashboard, appium-reporter-plugin, element-wait.
Describe the bug
The device-farm plugin (v10.0.6) fails to handle the getWindowRect command correctly on iOS devices. When the client sends a GET /window/rect request, the plugin intercepts the call but proxies it to an unhandled endpoint on the underlying WebDriverAgent/XCUITest driver. This results in a 404 Not Found error with the message Unhandled endpoint: /session/{id}/window/rect.
The issue seems specific to how device-farm manages the session proxying, as the native XCUITestDriver should normally translate this W3C command to the appropriate internal call. Using mobile: getDeviceScreenSize via executeScript works as a workaround, but the standard getWindowSize() or getWindowRect() methods fail consistently when the plugin is active.
Link to Appium logs
0-0] 2026-01-06T13:12:52.888Z INFO webdriver: Retrying 1/3
[0-0] 2026-01-06T13:12:52.888Z INFO webdriver: [GET] http://127.0.0.1:4723/wd/hub/session/d41f35ba-5be2-45d3-a957-d9521bc906b8/window/rect
[0-0] 2026-01-06T13:12:52.900Z WARN webdriver: Request failed with status 404 due to Unhandled endpoint: /session/95B3DCDB-900E-4852-A648-81900DC4A412/window/rect -- http://127.0.0.1:53331/ with parameters {
[0-0] wildcards = (
[0-0] "session/95B3DCDB-900E-4852-A648-81900DC4A412/window/rect"
[0-0] );
[0-0] }
[0-0] 2026-01-06T13:12:52.900Z INFO webdriver: Retrying 2/3
[0-0] 2026-01-06T13:12:52.900Z INFO webdriver: [GET] http://127.0.0.1:4723/wd/hub/session/d41f35ba-5be2-45d3-a957-d9521bc906b8/window/rect
[0-0] 2026-01-06T13:12:52.913Z WARN webdriver: Request failed with status 404 due to Unhandled endpoint: /session/95B3DCDB-900E-4852-A648-81900DC4A412/window/rect -- http://127.0.0.1:53331/ with parameters {
[0-0] wildcards = (
[0-0] "session/95B3DCDB-900E-4852-A648-81900DC4A412/window/rect"
[0-0] );
[0-0] }
[0-0] 2026-01-06T13:12:52.913Z INFO webdriver: Retrying 3/3
Environment
Appium version: 2.18.0
Last Appium version that did not exhibit the issue: N/A (Tested on 2.18.0)
Node.js version: v22.15
Npm or Yarn package manager: npm
Mobile platform/version under test: iOS 26.1
Real device or emulator/simulator: Real Device
Driver : xcuitest@9.2.1
Appium CLI or Appium.app|exe: Appium CLI
Active Plugins: device-farm@10.0.6, images, execute-driver, relaxed-caps, universal-xml, appium-dashboard, appium-reporter-plugin, element-wait.