Description
The Appium driver does not implement the parsed SetPermissionsStep on Android. Execution aborts before any permission request reaches Appium or the application.
Steps to Reproduce
- Start an Android Appium session using UiAutomator2.
- Run the flow below using maestro-runner with
--driver appium.
- Observe that execution stops at
setPermissions.
Expected Behavior
maestro-runner applies the requested Android runtime permissions and continues the flow.
Actual Behavior
The Appium driver reports SetPermissionsStep as unsupported and aborts the flow.
Environment
- OS: AWS Device Farm Amazon Linux 2 host / Android 15
- Go version: N/A (prebuilt release binary)
- maestro-runner version: v1.1.19; source inspection confirms the handler is also absent from v1.1.25
- Executor: Appium 2.11.5 with UiAutomator2
- Device/Simulator: Physical Samsung Galaxy S25
Flow File
appId: com.example.app
---
- setPermissions:
permissions:
notifications: allow
microphone: allow
Error Output
onFlowStart failed: unsupported step type: *flow.SetPermissionsStep
Additional Context
The Appium dispatcher has no SetPermissionsStep case and falls through to its generic unsupported-step result:
https://github.com/devicelab-dev/maestro-runner/blob/v1.1.25/pkg/driver/appium/driver.go#L145-L209
The Appium client already exposes mobile: changePermissions, which could support Android grant/revoke handling:
https://github.com/devicelab-dev/maestro-runner/blob/v1.1.25/pkg/driver/appium/client.go#L758-L799
This is separate from #147, which covers iOS Native/WDA location permission values.
This report covers standard Android runtime permissions. Special app-op permissions such as SCHEDULE_EXACT_ALARM are outside its scope.
Description
The Appium driver does not implement the parsed
SetPermissionsStepon Android. Execution aborts before any permission request reaches Appium or the application.Steps to Reproduce
--driver appium.setPermissions.Expected Behavior
maestro-runner applies the requested Android runtime permissions and continues the flow.
Actual Behavior
The Appium driver reports
SetPermissionsStepas unsupported and aborts the flow.Environment
Flow File
Error Output
Additional Context
The Appium dispatcher has no
SetPermissionsStepcase and falls through to its generic unsupported-step result:https://github.com/devicelab-dev/maestro-runner/blob/v1.1.25/pkg/driver/appium/driver.go#L145-L209
The Appium client already exposes
mobile: changePermissions, which could support Android grant/revoke handling:https://github.com/devicelab-dev/maestro-runner/blob/v1.1.25/pkg/driver/appium/client.go#L758-L799
This is separate from #147, which covers iOS Native/WDA location permission values.
This report covers standard Android runtime permissions. Special app-op permissions such as
SCHEDULE_EXACT_ALARMare outside its scope.