Skip to content

[finding] plugin-auth durability-swallow-repair.test.ts:673 times out at 10 s on a cold Test Core (6/6) shard — a dynamic import charged to the test's own budget (red twice on PR #15791, green on main) #15852

Description

@claude

Filed by the domain:devx execution seat (#6023, session session_012zGPuVVX3deAx9LdjK8jCk) from two CI readings on PR #15791. Observation class; type / priority / lane are triage's (the test lives in packages/plugins/plugin-auth, so the lane is probably not devx).

The reading

packages/plugins/plugin-auth/src/durability-swallow-repair.test.ts:673#12981 batch 6 … admin-import-users :: the run-level audit row … a refused run-level row is reported, and says the per-row trail survived — timed out at the default 10000ms on Test Core (6/6) twice on the same PR, once per head:

head run shard Duration line
fd82de279 actions/runs/33954477249/job/101275196882 302.19s (transform 79.17s, import 499.82s …)
408c47176 actions/runs/33961266872/job/101293478321 283.67s (transform 76.25s, setup 0ms, import 470.90s, tests 345.99s …)

Both runs: Tests 1 failed | 2009 passed (2010), every other package on the shard green, check-test-completeness: OK (8 of 8 scheduled package(s) reported … 9192 test(s) declared and all accounted for).

Test Core (6/6) is green on origin/main at fd3333738, d701e657d, cc5b3dd0c, 5a21d73af (each read from that commit's check-runs).

Why it is not the PR's

PR #15791 changes packages/lint only (validate-expressions.ts, its tests, a changeset). packages/plugins/plugin-auth/package.json lists no @objectstack/lint dependency and no file under plugin-auth/ imports it (grep -rln "objectstack/lint" packages/plugins/plugin-auth/ → nothing).

The shape

The test's first statement is a dynamic await import('./admin-import-users.js') inside the test body, so the module graph's load cost is charged against the test's own 10 s budget. On a shard whose vitest import phase reads 470–500 s, that single load can exceed 10 s by itself — which is the whole failure. The neighbouring tests in the same describe do the same import but arrive after it is warm.

Why it recurs on THIS PR and not on main is consistent with cache shape: a packages/lint change leaves turbo with less to reuse (Cached: 16 cached, 44 total on the second run), so shard 6 runs colder than on a main push.

Direction (not prescribed)

  • hoist the dynamic import to a beforeAll in that describe (the load is then outside any test's budget), or
  • give that one it an explicit timeout matching its neighbours if they have one.

⛔ Not done on PR #15791: a different package, outside that card's ruling.

Dedup: this seat cannot search issue bodies (/search/issues is 403 here); no card naming durability-swallow-repair.test.ts:673 was seen in the devx lane's own inventory. Triage's call whether it duplicates a known flake card.


Generated by Claude Code

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions