Maestro flow "timed out" in CI
A Maestro command waited on a condition (a screen, an animation, an app-idle state) and its timeout elapsed. On CI this usually means a slow emulator or an app screen that never reached the expected state within the allotted time.
What this error means
A flow fails with a timeout, for example "timed out waiting for ..." or a step that exceeds its wait window. Reruns sometimes pass, marking it flaky.
Command "assertVisible" timed out after 17000ms
waiting for element: Text matching regex: HomeCommon causes
A slow or overloaded CI emulator
The app takes longer to reach the expected screen on a resource-starved runner than the default timeout allows.
The app never reaches the expected state
A stalled network call or a screen that fails to load means the awaited condition never becomes true.
How to fix it
Raise the timeout for the waiting command
- Add an explicit
timeoutto theextendedWaitUntil/assertVisiblethat fails. - Size it for the slower CI device.
- If the app genuinely stalls, fix or stub the blocking call.
- extendedWaitUntil:
visible: "Home"
timeout: 30000Stub slow network so the state is reachable
Point the app at a fast local mock in E2E so a real slow endpoint does not push the flow past its timeout.
How to prevent it
- Set command timeouts sized for CI hardware.
- Stub slow external calls in E2E flows.
- Keep flows resilient to a slower emulator than local.