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
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 evidencefails at line ~1362 withMatcher did not succeed in 60000msonexpect.poll(thirdAcknowledgement, { timeout: 15_000 * timeScale }).Sequence: the third Runtime App binding is created,
window.location.hash = '#mcp'navigates away, theui/resource-teardownrequest is observed reaching the third frame, but the frame's JSON-RPC acknowledgement never arrives. Passes locally withCI=1time 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