Skip to content

investigate(ios): confirm historical XCTest tap-failure storm root cause #1599

Closed as not planned

Description

@thymikee

Purpose

Confirm or falsify the remaining historical root-cause hypothesis for the iOS XCTEST_RECORDED_FAILURE tap storm seen on hostile/profile-class screens.

The user-facing retry-spiral defect is already fixed:

This issue no longer owns tap-outcome recovery, generic runner restart behavior, or additional retry logic.

Remaining question

Was the archived failure storm caused by XCTest-channel saturation and abandoned capture work before #1587, or does an independent current defect remain?

Investigation contract

  1. Reproduce against the archived AppControlBench bsky-24 evidence or a controlled pre-perf(ios): halve hostile-screen capture cost under the XCTest-channel penalty #1587 build using the same profile-screen action sequence.
  2. Compare a pre-perf(ios): halve hostile-screen capture cost under the XCTest-channel penalty #1587 run with current main under the same app state and command sequence.
  3. Retain runner logs and request diagnostics covering:
    • capture duration and penalty state;
    • abandoned or coalesced runner work;
    • XCTEST_RECORDED_FAILURE timing;
    • restart/relaunch boundaries;
    • whether the UI changed despite the reported failure.
  4. Distinguish causal saturation evidence from correlation. A changing timeout/failure set or a non-equivalent app state is not confirmation.

Completion

No production change is required unless a distinct current-main defect is reproduced.

Activity

  1. changed the title [-]iOS: XCTEST_RECORDED_FAILURE taps are false negatives on hostile screens — retry spirals burn the whole task budget[/-] [+]investigate(ios): confirm historical XCTest tap-failure storm root cause[/+] on Sep 2, 2026
  2. thymikee commented on Oct 8, 2026

    @thymikee
    MemberAuthor

    Closing on this issue's own exit criterion: the storm doesn't reproduce on current main, and #1587, #1605 and #1634 replaced the paths it implicated. If a tap-failure storm comes back, open a new issue with a current repro.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions