Skip to content

Pro Version: Farm-runner fails to spawn Appium on Windows for appium device farm– ENOENT error #2048

@vverma202

Description

@vverma202

Description:
When running farm-runner on Windows, the process fails to spawn Appium with the error

spawn appium ENOENT
. Appium is installed globally and accessible via PATH, and works from the command prompt. The issue persists even after explicitly setting PATH and running as Administrator.

Scenario:

  1. Hub is setup on machine A (MAC machine)
  2. Node is setup on machine B (Window machine) and connected with physical real devices.
  3. Access the device farm Ui from client machine C and launch the device ui

Error logs:
process fails to spawn Appium with the error˙

C:\Users\LabMachine>farm-runner -c C:\newserver\nodeconfig.json
✅ OpenTelemetry initialized for farm-runner (tracing: enabled)
✅ OpenTelemetry logging initialized for farm-runner
(node:14700) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
(Use node --trace-deprecation ... to show where the warning was created)
{"timestamp":"2026-04-22T19:44:36.852Z","level":"info","service":"node","message":"🚀 Initializing session log storage service","args":[{"hubUrl":"http://wchmdhsn07025.qvcdev.qvc.net:3000"}]}
{"timestamp":"2026-04-22T19:44:36.855Z","level":"info","service":"node","message":"📤 Hub log uploader initialized","args":[{"hubBaseUrl":"http://wchmdhsn07025.qvcdev.qvc.net:3000"}]}
✅ Session log storage initialized (uploading to hub: http://wchmdhsn07025.qvcdev.qvc.net:3000)
✅ Hub is reachable for log uploads
📋 Using config file: C:\newserver\nodeconfig.json
📡 Registering node with hub...
Hub URL: http://wchmdhsn07025.qvcdev.qvc.net:3000
Node Name: windows
Host: 10.24.170.46:3003 (IP:PORT)
OS: Windows
✅ Node registered successfully with ID: bb97cf8f-adf5-4891-9379-b93a75f9d7b2
{"timestamp":"2026-04-22T19:44:37.101Z","level":"info","service":"node","message":"📱 Initializing Device Managers...","args":[]}
{"timestamp":"2026-04-22T19:44:37.103Z","level":"info","service":"node","message":"🤖 Initializing Android device manager...","args":[]}
{"timestamp":"2026-04-22T19:44:37.107Z","level":"info","service":"node","message":"🔍 Fetching devices...","args":[]}
{"timestamp":"2026-04-22T19:44:37.121Z","level":"info","service":"node","message":"Fetching existing devices from hub to avoid re-querying details...","args":[]}
{"timestamp":"2026-04-22T19:44:37.154Z","level":"info","service":"node","message":"No existing devices found in hub. So, querying connected devices.","args":[]}
info ADB Found 1 'build-tools' folders under 'C:\Users\LabMachine\AppData\Local\Android\Sdk' (newest first):
info ADB C:\Users\LabMachine\AppData\Local\Android\Sdk\build-tools\34.0.0
info ADB Using 'adb.exe' from 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe'
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 start-server'
dbug ADB Getting connected devices
dbug ADB Connected devices: [{"udid":"R52RB08X6QJ","state":"device"},{"udid":"R52W509PMWH","state":"device"}]
{"timestamp":"2026-04-22T19:44:37.499Z","level":"info","service":"node","message":"Android Device details for R52RB08X6QJ not available. So querying now.","args":[]}
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52RB08X6QJ shell getprop ro.build.version.release'
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52RB08X6QJ shell getprop ro.build.characteristics'
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52RB08X6QJ shell dumpsys package com.android.chrome'
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52RB08X6QJ shell wm size'
{"timestamp":"2026-04-22T19:44:38.596Z","level":"info","service":"node","message":"Screen dimension for device R52RB08X6QJ : Physical size: 1600x2560","args":[]}
{"timestamp":"2026-04-22T19:44:38.600Z","level":"info","service":"node","message":"Parsed screen dimension for device R52RB08X6QJ : 1600x2560","args":[]}
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52RB08X6QJ shell dumpsys bluetooth_manager | grep name: | cut -c9- | head -n 1'
{"timestamp":"2026-04-22T19:44:38.970Z","level":"info","service":"node","message":"Android Device details for R52W509PMWH not available. So querying now.","args":[]}
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52W509PMWH shell getprop ro.build.version.release'
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52W509PMWH shell getprop ro.build.characteristics'
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52W509PMWH shell dumpsys package com.android.chrome'
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52W509PMWH shell wm size'
{"timestamp":"2026-04-22T19:44:39.817Z","level":"info","service":"node","message":"Screen dimension for device R52W509PMWH : Physical size: 1848x2960","args":[]}
{"timestamp":"2026-04-22T19:44:39.818Z","level":"info","service":"node","message":"Parsed screen dimension for device R52W509PMWH : 1848x2960","args":[]}
dbug ADB Running 'C:\Users\LabMachine\AppData\Local\Android\Sdk\platform-tools\adb.exe -P 5037 -s R52W509PMWH shell dumpsys bluetooth_manager | grep name: | cut -c9- | head -n 1'
{"timestamp":"2026-04-22T19:44:40.252Z","level":"info","service":"node","message":"Found 2 android devices","args":[]}
{"timestamp":"2026-04-22T19:44:40.254Z","level":"info","service":"node","message":"✅ Found 2 Android device(s)","args":[]}
[DeviceHubService] 🔍 Checking for existing devices in hub...
[DeviceHubService] 📤 Sending 2 new device(s) to hub (0 already exist and are active)
[DeviceHubService] ✅ Successfully sent 2 new device(s) to hub: R52RB08X6QJ, R52W509PMWH
{"timestamp":"2026-04-22T19:44:40.350Z","level":"info","service":"node","message":"🔄 Starting DeviceReconciliationService (interval: 60000ms)","args":[]}
{"timestamp":"2026-04-22T19:44:40.356Z","level":"info","service":"node","message":"✅ Device reconciliation service started (interval: 60000ms)","args":[]}
dbug ADB Getting connected devices
🔌 Connecting to hub Socket.IO: http://wchmdhsn07025.qvcdev.qvc.net:3000
🚀 Node server is running on http://localhost:3003
📚 API endpoints available at http://localhost:3003/api

Available endpoints:
GET /health
✅ Socket.IO connected to hub (node: bb97cf8f...)
💓 Socket.IO heartbeat established with hub (node: bb97cf8f...)
dbug ADB Connected devices: [{"udid":"R52RB08X6QJ","state":"device"},{"udid":"R52W509PMWH","state":"device"}]
{"timestamp":"2026-04-22T19:45:40.030Z","level":"info","service":"node","message":"Received createSession event from hub","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","sessionData":{"capabilities":{"alwaysMatch":{"df:deviceId":"9fd0a9f0-46cf-5874-8e36-cbcc6ff841ca","df:sessionType":"manual","appium:settings":{"mjpegServerScreenshotQuality":0,"mjpegServerFramerate":10,"mjpegScalingFactor":100,"animationCoolOffTimeout":0},"platformName":"android","appium:automationName":"uiautomator2","appium:newCommandTimeout":"0"}},"tempSessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012","deviceUdid":"R52RB08X6QJ","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","method":"POST","requestId":"bb97cf8f-adf5-4891-9379-b93a75f9d7b2-temp-d2ed8fff-3e05-4440-aabf-126ffcc29012-1776887140083-24-lera0j"}}
{"timestamp":"2026-04-22T19:45:40.043Z","level":"info","service":"node","message":"Processing device capabilities...","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","requestId":"bb97cf8f-adf5-4891-9379-b93a75f9d7b2-temp-d2ed8fff-3e05-4440-aabf-126ffcc29012-1776887140083-24-lera0j"}
{"timestamp":"2026-04-22T19:45:40.047Z","level":"info","service":"node","message":"Looking up device information for UDID","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","deviceUdid":"R52RB08X6QJ"}
dbug ADB Getting connected devices
dbug ADB Connected devices: [{"udid":"R52RB08X6QJ","state":"device"},{"udid":"R52W509PMWH","state":"device"}]
{"timestamp":"2026-04-22T19:45:40.160Z","level":"info","service":"node","message":"Android Device details for R52RB08X6QJ already available","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","args":[]}
{"timestamp":"2026-04-22T19:45:40.163Z","level":"info","service":"node","message":"Android Device details for R52W509PMWH already available","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","args":[]}
{"timestamp":"2026-04-22T19:45:40.168Z","level":"info","service":"node","message":"Found 2 android devices","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","args":[]}
{"timestamp":"2026-04-22T19:45:40.171Z","level":"info","service":"node","message":"Found device","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","deviceName":"GalaxyTabS7_wchwlqvch00726","platform":"android","version":"12"}
{"timestamp":"2026-04-22T19:45:40.175Z","level":"info","service":"node","message":"Processing Android capabilities","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","caps":{"alwaysMatch":{"df:deviceId":"9fd0a9f0-46cf-5874-8e36-cbcc6ff841ca","df:sessionType":"manual","appium:settings":{"mjpegServerScreenshotQuality":0,"mjpegServerFramerate":10,"mjpegScalingFactor":100,"animationCoolOffTimeout":0},"platformName":"android","appium:automationName":"uiautomator2","appium:newCommandTimeout":"0"},"firstMatch":[{}]}}
{"timestamp":"2026-04-22T19:45:40.215Z","level":"info","service":"node","message":"Processed capabilities with device-specific information","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","note":"using random free ports","allocatedPorts":[8902,8903]}
{"timestamp":"2026-04-22T19:45:40.216Z","level":"info","service":"node","message":"Resolving app resources...","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","requestId":"bb97cf8f-adf5-4891-9379-b93a75f9d7b2-temp-d2ed8fff-3e05-4440-aabf-126ffcc29012-1776887140083-24-lera0j"}
{"timestamp":"2026-04-22T19:45:40.244Z","level":"info","service":"node","message":"WDA handling check","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","deviceUdid":"R52RB08X6QJ","devicePlatform":"android","runsOn":"undefined","isIosReal":false,"wdaId":"undefined"}
{"timestamp":"2026-04-22T19:45:40.245Z","level":"info","service":"node","message":"No wdaId in capabilities; checking device-specific WDA mapping","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","deviceUdid":"R52RB08X6QJ"}
{"timestamp":"2026-04-22T19:45:40.265Z","level":"info","service":"node","message":"Requesting device-specific WDA from hub","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","udid":"R52RB08X6QJ","url":"http://wchmdhsn07025.qvcdev.qvc.net:3000/api/wda/device/udid/R52RB08X6QJ"}
{"timestamp":"2026-04-22T19:45:40.305Z","level":"info","service":"node","message":"No device-specific WDA found; fetching default WDA from hub for device type","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","deviceType":"simulator","isIosReal":false,"deviceUdid":"R52RB08X6QJ"}
{"timestamp":"2026-04-22T19:45:40.315Z","level":"info","service":"node","message":"Requesting default WDA from hub","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","deviceType":"simulator","url":"http://wchmdhsn07025.qvcdev.qvc.net:3000/api/wda/default?deviceType=simulator"}
{"timestamp":"2026-04-22T19:45:40.344Z","level":"warn","service":"node","message":"Failed to fetch default WDA from hub","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","statusCode":404}
{"timestamp":"2026-04-22T19:45:40.345Z","level":"warn","service":"node","message":"No WDA ID available (explicit or default) for iOS real device; skipping WDA installation","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4"}
{"timestamp":"2026-04-22T19:45:40.350Z","level":"info","service":"node","message":"WDA capabilities not set - platform is not iOS","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","devicePlatform":"android","wdaBundleId":"undefined","wdaLocalPath":"undefined"}
{"timestamp":"2026-04-22T19:45:40.361Z","level":"info","service":"node","message":"Detected manual session, injecting MJPEG server port and quality settings","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","sessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012","isManualSession":true,"isRecordVideoEnabled":false}
{"timestamp":"2026-04-22T19:45:40.388Z","level":"info","service":"node","message":"Allocated new MJPEG port","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","sessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012","mjpegPort":10000}
{"timestamp":"2026-04-22T19:45:40.390Z","level":"info","service":"node","message":"Injected MJPEG server port and quality settings","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","sessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012","mjpegPort":10000,"settings":{"mjpegServerScreenshotQuality":25,"mjpegServerFramerate":10,"mjpegScalingFactor":100}}
{"timestamp":"2026-04-22T19:45:40.391Z","level":"info","service":"node","message":"Starting Appium server...","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","requestId":"bb97cf8f-adf5-4891-9379-b93a75f9d7b2-temp-d2ed8fff-3e05-4440-aabf-126ffcc29012-1776887140083-24-lera0j"}
{"timestamp":"2026-04-22T19:45:40.393Z","level":"info","service":"node","message":"Starting dedicated Appium server for session...","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4"}
{"timestamp":"2026-04-22T19:45:40.402Z","level":"info","service":"node","message":"📋 Session create request received: temp-d2ed8fff-3e05-4440-aabf-126ffcc29012","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4"}
{"timestamp":"2026-04-22T19:45:40.405Z","level":"info","service":"node","message":"🚀 Starting Appium server for session...","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","sessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012"}
{"timestamp":"2026-04-22T19:45:40.409Z","level":"info","service":"node","message":"📝 Session log file (default): C:\Users\LabMachine\tmp\temp-d2ed8fff-3e05-4440-aabf-126ffcc29012\appium.log","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","sessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012"}
{"timestamp":"2026-04-22T19:45:40.426Z","level":"info","service":"node","message":"📝 Using default Appium log level: debug (for maximum log visibility)","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4"}
{"timestamp":"2026-04-22T19:45:40.455Z","level":"info","service":"node","message":"🚀 Starting Appium server as child process","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","command":"appium","args":["--port","9000","--address","127.0.0.1","--use-drivers","uiautomator2","--allow-cors","--relaxed-security","--log","C:\Users\LabMachine\tmp\temp-d2ed8fff-3e05-4440-aabf-126ffcc29012\appium.log","--log-level","debug","--log-timestamp"],"port":9000,"sessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012"}
{"timestamp":"2026-04-22T19:45:40.459Z","level":"info","service":"node","message":"👀 Started monitoring Appium process stdio for pattern matching","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4"}
{"timestamp":"2026-04-22T19:45:40.463Z","level":"error","service":"node","message":"❌ Failed to start Appium process","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","error":"spawn appium ENOENT"}
{"timestamp":"2026-04-22T19:45:40.552Z","level":"error","service":"node","message":"❌ Failed to start Appium server for session","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","error":"Failed to spawn Appium: spawn appium ENOENT","sessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012"}
{"timestamp":"2026-04-22T19:45:40.555Z","level":"error","service":"node","message":"❌ Failed to start Appium server","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","error":"Failed to spawn Appium: spawn appium ENOENT"}
{"timestamp":"2026-04-22T19:45:40.566Z","level":"info","service":"node","message":"Released allocated ports","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","ports":[8902,8903]}
{"timestamp":"2026-04-22T19:45:40.576Z","level":"info","service":"node","message":"Cleaning up session resources","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","reason":"session creation error"}
{"timestamp":"2026-04-22T19:45:40.587Z","level":"info","service":"node","message":"📋 Session delete request received: temp-d2ed8fff-3e05-4440-aabf-126ffcc29012","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4"}
{"timestamp":"2026-04-22T19:45:40.589Z","level":"info","service":"node","message":"🔍 Searching for session","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","searchId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012","activeSessions":[],"totalSessions":0}
{"timestamp":"2026-04-22T19:45:40.590Z","level":"warn","service":"node","message":"❌ No session found for ID","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","sessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012"}
{"timestamp":"2026-04-22T19:45:40.590Z","level":"warn","service":"node","message":"⏭️ Session temp-d2ed8fff-3e05-4440-aabf-126ffcc29012 not in active sessions (already deleted)","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","activeSessions":[]}
{"timestamp":"2026-04-22T19:45:40.591Z","level":"info","service":"node","message":"Stopped Appium server during cleanup","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","tempSessionId":"temp-d2ed8fff-3e05-4440-aabf-126ffcc29012"}
{"timestamp":"2026-04-22T19:45:40.593Z","level":"error","service":"node","message":"Non-Appium error during session creation","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","error":"Failed to start Appium: Failed to spawn Appium: spawn appium ENOENT","stack":"Error: Failed to start Appium: Failed to spawn Appium: spawn appium ENOENT\n at _0xe40c20 (C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:18480565)\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at _0x4204bd (C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:18699311)\n at _0x45c475 (C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:18808984)\n at C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:31357549\n at Socket. (C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:31355674)"}
{"timestamp":"2026-04-22T19:45:40.595Z","level":"info","service":"node","message":"Forwarding error response back to hub","traceId":"ca1f5bbfc6aba561eab51fcc08f4e649","spanId":"87d8669e923c0cb4","status":400,"data":{"value":{"error":"unknown error","message":"Failed to start Appium: Failed to spawn Appium: spawn appium ENOENT","stacktrace":"Error: Failed to start Appium: Failed to spawn Appium: spawn appium ENOENT\n at _0xe40c20 (C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:18480565)\n at processTicksAndRejections (node:internal/process/task_queues:104:5)\n at _0x4204bd (C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:18699311)\n at _0x45c475 (C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:18808984)\n at C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:31357549\n at Socket. (C:\Users\LabMachine\AppData\Roaming\npm\node_modules\farm-runner\dist\src\bundle.js:3:31355674)"}}}
dbug ADB Getting connected devices
dbug ADB Connected devices: [{"udid":"R52RB08X6QJ","state":"device"},{"udid":"R52W509PMWH","state":"device"}]
SIGINT received, shutting down gracefully...
🔌 Socket.IO disconnected (shutdown)
🛑 Socket.IO heartbeat stopped
{"timestamp":"2026-04-22T19:45:48.085Z","level":"info","service":"node","message":"🧹 Cleaning up Appium session manager..."}
{"timestamp":"2026-04-22T19:45:48.087Z","level":"info","service":"node","message":"✅ Cleanup complete"}
{"timestamp":"2026-04-22T19:45:48.090Z","level":"info","service":"node","message":"🛑 DeviceReconciliationService stopped","args":[]}
OpenTelemetry SDK shut down

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions