Skip to content

[BUG] Appium driver rejects parsed setPermissions step on Android #148

Description

@yesiamdaniel

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

  1. Start an Android Appium session using UiAutomator2.
  2. Run the flow below using maestro-runner with --driver appium.
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions