Android: snapshot helper exits without parseable output after a screen transition (still on 0.21.33)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- android, react-native, typescript
Piste de recherche
Start by tracing the Android snapshot helper’s persistent session and one-shot am instrument fallback, then inspect how instrumentation output and failures become COMMAND_FAILED. Reproduce snapshots immediately after a screen transition on the Android 36 Google ATD emulator and capture the instrumentation exit status and result bundle. Done means the intermittent failure is understood and addressed, with a regression check for the transition case.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
On an Android emulator in CI, snapshot intermittently fails because the snapshot helper exits without returning parseable output. The client gets COMMAND_FAILED with details.androidSnapshotHelperFailureReason: "Android snapshot helper failed before returning parseable output". It reproduces on 0.21.28 and 0.21.33, so the vanished-child fix in #3901 (0.21.31) did not remove it for us.
Environment
- Emulator:
system-images;android-36;google_atd;x86_64(API 36, Google ATD), in CI - Driven through
@e2e-dev/mobile0.12.4 (persistent snapshot-helper session, then the one-shotam instrumentfallback) - App: React Native (Expo)
| Run | agent-device | Helper versionCode | Result |
|---|---|---|---|
| A | 0.21.28 | 21028 | helper exit after 629 ms |
| B | 0.21.28 | 21028 | session returned truncated XML → force-kill → one-shot fallback exits after 947 ms |
| C | 0.21.33 | 21033 | persistent session didn't answer → instrumentation fallback failed (1022 ms, then 602 ms) |
Frequency: an A/B over the same suite gave 1 failing run of 5 on 0.21.33 and 1 of 3 on 0.21.28.
Repro shape
In the 0.21.33 failure, the step was an assertion polling snapshots right after a screen transition (a peer mention opened from the notifications list). Failure is intermittent, and the request logs also show it on repeated snapshots.
Evidence excerpts
Run A, 0.21.28:
command=snapshot; helper version=0.21.28; versionCode=21028
android_snapshot_helper_capture durationMs=629: failed before returning parseable output
request_failed code=COMMAND_FAILED: Android snapshot helper failed: ...
Run B, 0.21.28:
android_snapshot_helper_session_stop: forceKilled=true
android_snapshot_helper_session_fallback: "Android snapshot helper session returned truncated XML"
android_snapshot_helper_capture durationMs=947: failed before returning parseable output
request_failed code=COMMAND_FAILED
Run C, 0.21.33 (two requests):
helper version=0.21.33; versionCode=21033
persistent-session answered=false; instrumentation fallback failed
capture durations: 1022 ms and 602 ms
reason: Android snapshot helper failed before returning parseable output
request_failed code=COMMAND_FAILED
Logcat:
- In run C, the Android automation logcat shows
Force stopping com.callstack.agentdevice.snapshothelper ...: start instr, then the process start andUiAutomation: Initialized. NoFATAL EXCEPTION,AndroidRuntimeorNullPointerExceptionline follows. - The
adb logcat -d -b crashdump taken after the suite is empty (run C; runs A/B predate that dump). - So the artifacts show the helper exiting, but not an in-process exception.
Asks
- Is there a helper-side log, or a flag such as
--debug, that would record why the instrumentation exited (exit code, instrumentation result bundle, aINSTRUMENTATION_ABORTED/shortMsg)? Our host only records "failed before returning parseable output". - Could the one-shot fallback be retried once by agent-device itself when the persistent session has just been force-killed? In our logs, both paths fail inside the same ~1 s window right after a transition.
Related: #3901 (vanished-child NPE, 0.21.31), #3929 (persistent helper frozen on ColorOS; a different symptom).
- Langage dominant
- TypeScript
- Étoiles
- 5.2k
- Forks
- 359
- Merge moyen
- 12 h 48 min
- PR mergées (30 j)
- 657
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de callstack/agent-device
-
A session bound to an Apple device rejects --device=<its own UDID>Peut-être pris @zerone0x l’a pris aujourd’hui. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
callstack/agent-device#3945 ·
Les mainteneurs répondent en général sous 1 jour
-
Limrun iOS fill reports success but drops non-ASCII textPeut-être pris @mvanhorn l’a pris il y a 7 jours. Ouvertebug ready-for-agent
Difficulté 2/5 1-3 heures Accessibilité débutants 87/100
callstack/agent-device#3819 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
callstack/agent-device#1869 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
callstack/agent-device#3992 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 62/100
callstack/agent-device#3987 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de callstack/agent-device
Issues similaires
-
[Bug]: Pen taps on sidebar rows start a drag and lose their clickPeut-être pris @makhnatkin l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
b310-digital/teammapper#1515 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
puckeditor/puck#1884 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
outline/outline#14378 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
nicobailon/pi-web-access#642 ·
Les mainteneurs répondent en général sous 1 jour