test(knowledge): quarantine the RAG pipeline ingest test for #1667 - #1668
Merged
Merged
Conversation
`Full RAG pipeline grounds the model answer on the retrieved chunk` flaked on the 2026-09-01 daily (run 33511210195) with the same signature it carried on 2026-08-18 — `expect(locator).toBeVisible() failed`. The call log is specific about which way: `element(s) not found` for `[data-id="Knowledge-ingest"] [data-testid^="node_duration"]` over the whole 90 s budget. The Knowledge (Ingest) node never rendered a duration badge, so the ingest never reported completing and the test never reached the answer path it is named for. Four occurrences in `reports/daily-history.jsonl` since 2026-07-16 (07-16, 07-22, 08-18, 09-01), every one recovering on retry, which is why it has never gone hard. Daily 2026-09-01 tripped the mass-failure guard (8 hard failures against a threshold of 5) and the triage's verdict for the day is environmental — but the guard governs hard failures only, and the flake criterion has no guard-day exemption. The day's verdict does not cover this test either way: attempt 0 ran 13:11:52 -> 13:13:30 UTC on shard 3, where the in-run liveness recorder measured 1 of 91 probes down and no probe slower than 2 s. It is the only failing attempt of that entire run on a demonstrably healthy backend, which is why it is filed on an otherwise environmental day. The signature string is generic, so the recurrence claim rests on the second shared dimension: the same test at the same step. #1667 is directed to confirm the failing locator on 2026-08-18 against the per-run Playwright JSON rather than assume it from `error_signature` (#1626). Both edits are applied together: `@stable` removed (Phase 0 of QA-CHECKLIST is generated from `@stable` test() calls, so leaving it would keep counting a quarantined test as validated) and `test.fixme` added, so the test stops running in every context rather than only in the daily (#871). Lifting the quarantine (remove test.fixme + restore @stable) is a deliverable of #1667.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR quarantines the flaky RAG pipeline ingest test in the Langflow E2E regression suite to prevent repeated noise in CI while #1667 investigates the underlying failure.
Changes:
- Converted the affected test to
test.fixme(...)so it is skipped in all run contexts. - Removed
@stablefrom the test tags so it no longer counts toward the generated “Phase 0 — Validated” list. - Added an in-file quarantine rationale comment referencing the originating daily triage and follow-up issue.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+284
to
+286
| // Same test, same signature on the 2026-08-18 and 2026-09-01 dailies (4× since | ||
| // 2026-07-16, every one recovering on retry). On 09-01 it failed on shard 3 in a | ||
| // window the in-run liveness recorder measured at 1 of 91 probes down — the only |
Victor-w-Madeira
deleted the
test/quarantine-1667-rag-pipeline-ingest
branch
September 1, 2026 14:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Quarantines
Full RAG pipeline grounds the model answer on the retrieved chunkas prevention, from the triage of daily-failure #1665 (run 33511210195, 2026-09-01). It is not a fix — the investigation is #1667.Why
The test flaked with the same signature it carried on 2026-08-18 —
expect(locator).toBeVisible() failed— and the call log is specific about which way:The Knowledge (Ingest) node never rendered a duration badge, so the ingest never reported completing and the test never reached the answer path it is named for. Four occurrences in
reports/daily-history.jsonlsince 2026-07-16 (07-16, 07-22, 08-18, 09-01), every one recovering on retry, which is why it has never gone hard.Why it is filed on an environmental day
Daily 2026-09-01 tripped the mass-failure guard (8 hard failures against a threshold of 5) and the triage's verdict for the day is environmental — 4/4 shards needing the post-sweep health gate (91–110 s), 19 outages, 25.4 min of measured unreachable backend. The guard governs hard failures only, and the flake criterion has no guard-day exemption (
CONTRIBUTING.md→ Triage protocol, step 2).The day's verdict does not cover this test either way. Attempt 0 ran 13:11:52 → 13:13:30 UTC on shard 3, where the in-run liveness recorder measured 1 of 91 probes down and no probe slower than 2 s. It is the only failing attempt of the entire run on a demonstrably healthy backend.
One caveat carried into #1667 rather than assumed here: the recorded signature is the generic
expect(locator).toBeVisible() failed, which #1626 documents as too coarse to distinguish two locators inside one spec. The recurrence claim rests on the second shared dimension — same test, same step — and #1667 is directed to confirm the 2026-08-18 locator from that run's Playwright JSON.The change
Both edits together, per
CONTRIBUTING.md→ Quarantine mechanism:@stableremoved — Phase 0 ofQA-CHECKLIST.mdis generated from@stabletest()calls, so leaving it would keep counting a quarantined test as validated.test.fixmeadded —@stableremoval alone only stops the daily; the test would keep going red on thepr-validation.ymlimpacted-specs gate, which selects by file diff rather than by tag (Triage quarantine PRs go red on the impacted-specs gate — quarantine via test.fixme, not @stable removal alone #871).test.fixmeskips it in every context.@release @components @filesare kept — the test is quarantined, not reclassified.No
QA-CHECKLIST.mdchange: the spec still has a doc underdocs/, so its manual Part II bullet must stay, and the generated blocks are regenerated on merge tomain.Verification
npm run typecheck— cleannpm run lint— 0 errorsnode scripts/check-checklist-guard.mjs— no generated block editednpm run check:checklist-coverage— every@stableand documented spec still referenced by a Part II bulletnpx playwright test <spec> --grep @stable --list→Total: 0 tests, and the unfiltered list shows the test present but not executedLifting the quarantine — remove
test.fixme+ restore@stable, re-validated perCONTRIBUTING.md— is a deliverable of #1667.Refs #1667, #1665