Four Playwright flake sources: unpinned reindex schedule, RDF projection race, popover re-click, premature node assertion
Four Playwright flake sources, all found while running the suite for #33248.
1. A weekly reindex can rewrite shared search results mid-shard
entity-data.setup.ts creates the entities every spec in the shard shares, but nothing disables
SearchIndexingApplication's schedule. If its weekly rebuild fires partway through a shard, search
results change underneath specs that already asserted on them.
Fix: the setup patches appSchedule.scheduleTimeline to None and asserts the patch took.
2. KnowledgeGraph.spec.ts starts before the RDF projection has caught up
beforeAll creates a table and proceeds immediately. The RDF projection is asynchronous, so the
first assertions can run against a graph that has not seen the table yet. The afterAction() cleanup
was also outside a try/finally, so a failure during setup leaked the API context.
Fix: poll a SPARQL ASK for the schema→table edge (60 s budget) before the suite runs, and move
afterAction() into a finally.
3. GlobalPageSize.spec.ts reopens a popover it has already opened
The retry block clicked the "Records" button unconditionally, so on a retry where the menu was already open the click closed it and the following assertion failed. The summary panel can also resize the page and dismiss the popover during actionability checks.
Fix: only click when the option is not already visible, and bound the clicks so the outer
expect(async () => …) retry can reopen it.
4. LineageFilters.spec.ts asserts a node exists before selecting it
The spec asserted lineage-node-${topicFqn} was visible before clicking the option that adds it.
Fix: swap the order — click the option, then assert the node appeared.
How we know it is fixed
Each spec runs green in the lane it belongs to, and the four failure modes above are each removed at their source rather than absorbed by a longer timeout.
Source: open-metadata/OpenMetadata