Попробовал запустить эту же команду через Curl.
curl -X POST http://127.0.0.1:4723/wd/hub/session ^
-H "Content-Type: application/json" ^
-d "{"capabilities":{"alwaysMatch":{"platformName":"android","appium:udid":"127.0.0.1:21503","appium:automationName":"UiAutomator2","appium:newCommandTimeout":300000},"firstMatch":[{}]}}"
и получил ответ
{"value":{"capabilities":{"platformName":"android","udid":"127.0.0.1:21503","automationName":"UiAutomator2","newCommandTimeout":300000,"platform":"LINUX","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"platformName":"android","udid":"127.0.0.1:21503","automationName":"UiAutomator2","newCommandTimeout":300000},"deviceName":"127.0.0.1:21503","deviceUDID":"127.0.0.1:21503","pixelRatio":"1.49375","statBarHeight":36,"viewportRect":{"left":0,"top":36,"width":720,"height":1244},"deviceApiLevel":28,"platformVersion":"9","deviceManufacturer":"samsung","deviceModel":"SM-G935F","deviceScreenSize":"720x1280","deviceScreenDensity":239},"sessionId":"41c28e8c-7ab8-4f7b-a164-8248d2a4ba87"}}
Это означает, что сессия успешно создана, и запрос через curl был выполнен корректно.
Ответ содержит информацию о сессии и устройстве, в том числе:
platformName: "android"
udid: "127.0.0.1:21503"
deviceModel: "SM-G935F" (устройство эмулирует Samsung Galaxy S7)
platformVersion: "9" (Android 9)
sessionId: уникальный идентификатор сессии.
Таким образом, Appium корректно работает через curl, и проблема, скорее всего, связана с тем, как BAS отправляет запросы.
Как узнать какие запросы отправляют BAS ?