Skip to content

Fix the route map crash with older Play services; make Maestro catch it - #132

Merged
joreilly merged 2 commits into
mainfrom
maestro-crash-check
Oct 17, 2026
Merged

joreilly merged 2 commits into
mainfrom
maestro-crash-check

Conversation

@joreilly

@joreilly joreilly commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Crash fix: the Android app crashed about 2s after a route map rendered on CI's google_apis API 32 emulator. Logcat:
    NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion; from com.google.android.gms.dynamite_mapsdynamite@22.50.14.
    The Maps module in older Google Play services uses the Apache HTTP client, which apps targeting API 28+ must declare. Adds <uses-library android:name="org.apache.http.legacy" android:required="false"/>, Google's documented fix. Real devices with older Play services would crash the same way; newer Play services (as on my local emulator) don't need it.
  • Maestro now catches it: the crash had gone unnoticed because the flow's assertions passed before the app died, and the screenshot showed the home screen. The flow now waits after the screenshot and checks "Route 402" is still showing.
  • Diagnostics: the emulator script saves adb logcat -d into maestro-debug/, which uploads on failure.

Test plan

  • Without the fix: CI maestro job fails, and logcat shows the crash above
  • With the fix: uses-library is in the built APK's manifest, and the flow passes locally (API 37 emulator)
  • With the fix: CI maestro job green, and the Android screenshot shows the route map

🤖 Generated with Claude Code

https://claude.ai/code/session_01G317KNXo9kZndPaSEtMCuG

joreilly and others added 2 commits October 17, 2026 14:13
On CI the app disappeared right after the map step, so the screenshot
showed the home screen while the job passed. Re-check the screen after
the screenshot, and save logcat with the debug output to see why.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G317KNXo9kZndPaSEtMCuG
The Maps module in older Play services (22.50 on the CI emulator) uses
the Apache HTTP client, which apps targeting API 28+ must declare, so the
map crashed with NoClassDefFoundError: org/apache/http/ProtocolVersion.
Real devices with older Play services would hit the same crash.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G317KNXo9kZndPaSEtMCuG
@joreilly joreilly changed the title Maestro: fail if the app dies after the route map renders; keep logcat Fix the route map crash with older Play services; make Maestro catch it Oct 17, 2026
@joreilly
joreilly merged commit b3cbc4b into main Oct 17, 2026
4 checks passed
@joreilly
joreilly deleted the maestro-crash-check branch October 17, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant