Skip to content

Runtime App teardown acknowledgement lost under slow Node 26 CI runners #23

Description

@ScriptedAlchemy

Recurring CI failure (Node 26 Verify on #18, #20, #22; also one Node 22 run): packages/workbench/tests/mcp-app-real.e2e.test.ts > opens the real RSC runtime timeline App from provider-owned run evidence fails at line ~1362 with Matcher did not succeed in 60000ms on expect.poll(thirdAcknowledgement, { timeout: 15_000 * timeScale }).

Sequence: the third Runtime App binding is created, window.location.hash = '#mcp' navigates away, the ui/resource-teardown request is observed reaching the third frame, but the frame's JSON-RPC acknowledgement never arrives. Passes locally with CI=1 time scaling, and the same flow passes on Node 22/24 most of the time.

Hypothesis: on slow runners the sandboxed App frame is unmounted by the navigation before it posts its teardown response, so the lifecycle owner waits on an acknowledgement that can no longer be delivered (the design's teardown contract awaits the exact ack before DELETE). If so this is a race in the close path, not a budget shortfall - raising the wait will not fix it. Worth a deterministic repro that delays the frame's ack past unmount.

Evidence: run 33228321926 job 99036290040 (attempt 1), annotations and log excerpt in the job.

🤖 Generated with Claude Code

https://claude.ai/code/session_01EMWczsXAkj7fC5ssSxGK43

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions