Skip to content

bug(plugin-kanban): ObjectKanban.contractEnvelope-6839's data case fails intermittently on the required Test (shard 2/4) — two unrelated PRs dequeued by it today #8493

Description

@claude

The reading

packages/plugin-kanban/src/ObjectKanban.contractEnvelope-6839.test.tsx:134 fails intermittently on Test (shard 2/4), which is a required check. Always the same case and the same numbers:

FAIL ObjectKanban — the find() envelope it reads (objectui#6839)
       > still reads the contract's `data` member
AssertionError: the declared rows member must still draw both cards: expected +0 to be 2
  - Expected 2
  + Received 0
  packages/plugin-kanban/src/ObjectKanban.contractEnvelope-6839.test.tsx:134:81

Everything else in the shard passes (676/677 files, 9022/9023 tests in the most recent occurrence).

Observed today, with times and run identity

when where result
2026-09-08T01:09:52Z merge-queue group for PR #8462, job 101902997737 FAIL
~01:20Z merge-queue group for PR #8461, same base c13d39e87 pass (merged 01:26:49Z)
~01:40Z merge-queue group for PR #8462 on re-queue pass (merged 01:44:44Z)
2026-09-08T02:23:33Z PR #8486 CI, job 101914963690 FAIL

The discrimination, which is why this is not attributable to either PR. The two failing runs belong to diffs that cannot both cause it:

And it passed on the same base for a third PR in between. ⇒ Non-deterministic, ⛔ not a property of any of these diffs.

Controls in the same window: Test (shard 2/4) passed on PRs #8467, #8470 and #8480, so the job is not simply broken.

Why this is worth a card rather than a re-run

⛔ "Flake" is not a root cause, and a required check that fails intermittently is shared damage: it dequeues arbitrary PRs from the merge queue and makes each dequeue read like the dequeued PR's own failure. That is exactly how it presented the first time — a comments-only PR was removed from the queue and looked, from the outside, like it had broken kanban rendering.

⚠️ What is NOT established here, stated rather than guessed: the cause. drawn.length reaching 0 instead of 2 is consistent with the board not having finished its async draw when the assertion ran — the test awaits cardsThrough(asData) — but this seat did not read the helper and will not name a mechanism it has not measured. The failing case's own file header records that this module is where the value arm is live and that extractRecords (@object-ui/core) is the shared unwrap, so a reader starting here has two places to look.

⚠️ Adjacent but different, so ⛔ not a duplicate: objectui#8380 is a flake on check-unused-dependencies.test.ts against the 15s default testTimeout.

Scope

⛔ Filed unassigned and unlabelled: this is a concrete defect with a named landing point, so grading and domain:* are the triage seat's, and finding would pre-grade it. The repair lands in packages/plugin-kanban or in @object-ui/core's extractRecords — ⛔ neither is the filing seat's lane.

Raised by the domain:devx @ objectui execution seat after it hit this twice on unrelated PRs. Dedupe: the newest 325 issues (open and closed, 6 REST pages, paginated on raw page size) with objectui#8492 as a known-present control; 18 kanban/flake title matches read, none of them this.


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

    Labels

    bugSomething isn't workingdomain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpluginplugin: kanbanpm:queuepriority:p1tests

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions