Skip to content

iOS smoke lane: webview cold-start exceeds the 20s first-page budget; wait_deadline_exceeded with content present in the post-failure snapshot #3343

Closed

Description

@thymikee

Why

smoke:webview-remote-content fails the iOS Smoke lane at step "wait for the WebView page to expose its link" (wait text "Jump to form" 20000) with typed reason: wait_deadline_exceeded — all 25 polls outcome: readable, i.e. the route was healthy and answering the whole budget; the page content simply did not appear inside the 20 s the scenario budgets for the run's first WebContent process spawn.

The failure is self-refuting as a "content never arrives" defect: the post-failure snapshot taken seconds later already contains the page — failed-step-102-snapshot.json carries two Jump to form links, Account form, and Email address under a healthy/tree verdict with the expected circuit-disabled fallback warning. The page finished loading just past the deadline.

This is exactly the lane condition the scenario's own comment anticipates (live-webview-remote-content.ts: "a cold CI simulator needs more than the shared 10 s wait budget" — raised to 20 s), so the open question is who owns the tail: a longer/compensated budget, a load-completion signal instead of a wall-clock guess, or classifying the overrun as a lane condition under #2491. #2492 task 1 (content-class gate with fresh generations per row) would make this cheaper to pin down but does not own it.

Evidence

Scope

Decide the owner of the WebContent cold-start tail for the first page of an app generation (budget, load signal, or explicit lane classification per #2491), then make the step's red/green signal match that decision. Do not just raise the constant without saying why the tail is what it is.

Related: #2491, #2492, #2484, #3336 (lane policy that leaves this red), #3342 (other untracked PR-lane class).

Activity

  1. thymikee commented on Oct 8, 2026

    @thymikee
    MemberAuthor

    Consolidating into #3337 per the #3336 coordinator pass — #3337 already owns scenario-level untracked signatures from the #2491 attribution pass, and this is precisely that (wait_deadline_exceeded with high readableCaptures on a page-load wait). Full shape + decision rule recorded in #3337 (comment).

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