Skip to content

[BUG] tapOn fails but executed on emulator #25

@satishs22

Description

@satishs22

Description

tapOn fails with a context deadline exceeded HTTP timeout error when attempting to click an element via UIAutomator2, even though the tap visually fires on the emulator, but UIAutomator2 likely hangs sending the HTTP response back. All preceding steps (including inputText on the same screen) complete without issue.

Steps to Reproduce

  1. Run command maestro-runner --device emulator-5554 test -e TEST_EMAIL= -e TEST_PASSWORD= .maestro/login/login-success.yaml
  2. With the flow file below
  3. Observe that all steps pass up through hideKeyboard after password input, then tapOn: id="login-submit-button" fails

Expected Behavior

tapOn should send the click event to the element and the flow should continue to the next assertion.

Actual Behavior

tapOn times out after ~10.5s with:

Failed to tap: send request: Post "http://localhost/session/15870623-ef9b-40ab-9744-54da32fd1639/element/00000000-0000-0017-ffff-ffff00000040/click": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

The element is located (it has a valid element ID in the URL), but the HTTP POST to /click never returns before the client timeout. The tap does appear to execute on the emulator visually, suggesting the click is sent but the response is never received.

Environment

  • OS: macOS (Apple Silicon)
  • maestro-runner version: 1.0.7
  • Executor: UIAutomator2 (via uia2 socket at /tmp/uia2-emulator-5554.sock)
  • Device/Simulator: Android Emulator — google sdk_gphone64_arm64, Android SDK 36 (emulator-5554)

Flow File

# Relevant flow file (anonymized if needed)
appId: com.example.app
name: Login Success
commandTimeout: 20000
---
- clearState:
    appId: com.example.app
- launchApp:
    appId: com.example.app
    newSession: true
    permissions:
      all: allow
- extendedWaitUntil:
    visible:
      id: login-email-input
    timeout: 10000
- takeScreenshot: login-screen-loaded.png
- inputText:
    id: login-email-input
    text: 'test@example.com'
- hideKeyboard
- inputText:
    id: login-password-input
    text: 'testpassword'
- hideKeyboard
- tapOn:
    id: 'login-submit-button'   # <-- fails here
- waitForAnimationToEnd:
    timeout: 3000

Error Output

✗ tapOn: id="login-submit-button" (10.5s)
  ╰─ Failed to tap: send request: Post "http://localhost/session/15870623-ef9b-40ab-9744-54da32fd1639/element/00000000-0000-0017-ffff-ffff00000040/click": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Additional Context

maestro-runner.log

report.json

report.html

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