Skip to content

web_ci build-and-test hangs indefinitely on main #1637

@polina-c

Description

@polina-c

Most likely culprit is: #1621

It was merged with failed 'build-and-test'

Summary

web_cibuild-and-test hangs indefinitely during the Run all JS/TS tests step (yarn test:all). The tools/composer (widget-builder) vitest run reports all tests passing (6 files / 32 tests), then prints:

Not implemented: navigation to another Document

…and the process never exits, hanging until the GitHub Actions ~6-hour job timeout kills the run.

This reproduces on main and on every PR (it is independent of the change under test), so it currently blocks a green build-and-test for the whole repo.

Reproduction signature

tools/composer  →  Test Files  6 passed (6)
                →  Tests       32 passed (32)
                →  Not implemented: navigation to another Document
                →  [no further output for ~5 hours, until the job timeout]

Affected runs (all same signature, multiple unrelated branches)

Branch Hung for build-and-test job
main 306 min https://github.com/a2ui-project/a2ui/actions/runs/27434536520/job/81093018459
refactor_actions 308 min https://github.com/a2ui-project/a2ui/actions/runs/27434471660/job/81092795255
dependabot/npm_and_yarn/...-24c5ad6f63 309 min https://github.com/a2ui-project/a2ui/actions/runs/27435057424/job/81094765314
dependabot/npm_and_yarn/...-d1806c4ab8 304 min https://github.com/a2ui-project/a2ui/actions/runs/27435354679/job/81095770890
refactor_actions (earlier) 132 min https://github.com/a2ui-project/a2ui/actions/runs/27389047490/job/80942414373
samples-reorg (PR #1628, cancelled) hung https://github.com/a2ui-project/a2ui/actions/runs/27449354106/job/81141212966
samples-reorg (PR #1628, re-run, cancelled) hung https://github.com/a2ui-project/a2ui/actions/runs/27449354106/job/81144865534

Last known green build-and-test (before the regression): https://github.com/a2ui-project/a2ui/actions/runs/27428052847 (21 min).

Culprit / when it started

Triggered by #1621 ("ci: refactor GitHub Actions pipeline to use composite actions and consolidated CI workflows", commit eb9d5ffb), merged 2026-06-12 18:18 UTC. main's first hanging build-and-test run started at that same timestamp (run 27434536520).

#1621 deleted the dedicated composer_build_and_test.yml workflow and consolidated everything into web_ci.yml's build-and-test job, which now runs yarn test:all (all workspaces, including tools/composer). That is what pulled the composer jsdom test hang into the shared web CI path repo-wide. The underlying open-handle in the composer tests is the deeper cause (see below), but #1621 is what exposed it as a blocking failure for main and every PR.

Likely root cause

tools/composer runs its tests under the jsdom environment (tools/composer/vitest.config.ts). Its components navigate via Next.js routing / anchor links — e.g. <a href="/widget/${id}"> in src/components/layout/sidebar-widgets.tsx and router.push(...) in src/components/main/create-widget.tsx and src/app/gallery/page.tsx. When a test exercises one of these, jsdom logs Not implemented: navigation to another Document and an open handle (jsdom env / Monaco / CopilotKit / a timer) keeps the Node process alive, so vitest run reports success but never terminates.

Suggested directions

  • Stub navigation in tools/composer/src/test/setup.ts (mock window.location / Next.js useRouter so component clicks don't trigger a real jsdom navigation), and/or
  • Detect/close the open handle (run vitest run --reporter=verbose with open-handle detection locally to identify it), and/or
  • As a stopgap, add a job-level timeout-minutes to web_ci so a hang fails fast (minutes) instead of consuming a ~6h runner.

Impact

Blocks a passing build-and-test check on main and all PRs.

Metadata

Metadata

Assignees

Labels

P0type: bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions