ReviewOS

stacks/drone

Workspace browser: identify the operation behind an unlabeled timeout

#63
Open chris opened this 9 days ago ·
9 days ago

The rendered native workspace CI case at 6ded83267d9bb9d0fe87c900f405314ec08a6119 fails with an unlabeled TimeoutError: The operation timed out. The operation and failing phase are not captured, so the original cause is unproven.

Original evidence:

  • CI 39810221070, workspace-browser job, Bun 1.4.3 on the configured Linux runner.
  • actual rendered workspace with native credentials and routes fails after 28,153.79 ms. Its owned driver exits 1; the parent expected 0.
  • Native fixture control checks without Chrome, unguarded-directory refusal and owned-descendant cleanup tests all pass.
  • The raw terminal job log is retained once: 82,958 bytes, SHA-256 cc23b06af3daad74b6db8a5335cec2cf8b0080519f10d747a9b0cb6f80620043.
  • Original artifact 12440620353 and its compiled HTML/screenshots are retained separately. Screenshots must be tied to their captured phase before treating them as the failing DOM.
  • The execution browser job in the same workflow also reports the existing nominal100 completion symptom tracked in #44. Shared timing or another common cause is not established.

Acceptance:

  • Retain the original failure and artifacts; identify the exact native HTTP, page navigation, CDP or browser operation whose bound expired.
  • Add bounded, private-data-free phase/operation observations that still return useful evidence when another observer is unavailable.
  • Reproduce the actual failure at its original request and outer test guards before assigning a cause.
  • Fix an established cause and qualify actual rendered routes/accounts and owned cleanup. Do not use a later green run as proof of an earlier cause.
  • Preserve existing browser, authority, request-timeout and process cleanup bounds unless a separately justified contract change is required.

Bounded operation diagnostics

Draft PR #66 at 2dc5248d2f644784fd35a73af14441d3079a2d41 records fixed operation labels around native browser/target fetch, JSON, WebSocket and private-control boundaries. All 11 controlled native peer cases pass with 117 assertions; lint and application/runtime types pass. The original transport limits and errors are preserved, including when the diagnostic descriptor is actually unwritable. These fixtures establish reporting behavior, not the cause of the original failure or Chrome qualification. A separate actual Chrome stream-renewal failure is retained in #64; the unrelated current PR #62 cold-build setup failure is tracked in #65. Original causes remain open.

Sign in to comment on this issue.