REPRODUCIBILITY BEFORE GUESSWORK
When local passes
and CI fails.
A short investigation sequence. These are tests of hypotheses, not promised fixes.
1. Preserve one comparable failure
Record the commit, browser/project, operating system, package lock, worker count and relevant environment differences. Keep traces private and review the first failing action locally. Playwright Trace Viewer can show the action timeline and snapshots.
2. Change one condition
As a controlled experiment, run the affected test with one worker and retries disabled. A passing run does not establish a fix: repeat with the original worker count and compare outcomes. Reduced concurrency can help isolate shared-state or resource-contention hypotheses; it does not prove either. See the official CI guide.
A concrete comparison to run
Replace the path with your affected test. Keep the same commit, project and environment in both runs. These commands execute your own test code in your authorized environment.
npx playwright test tests/cart.spec.ts --workers=1 --retries=0 --repeat-each=10
npx playwright test tests/cart.spec.ts --retries=0 --repeat-each=10The second command uses your configured worker count. If that is already one, choose the original CI worker count explicitly for the comparison. Record failures and error types in both conditions. A smaller failure count suggests where to investigate; ten successful repeats are not proof of a fix. Do not change timeouts and selectors in the same experiment.
3. Keep first failures visible
A pass on retry is classified separately from a first-attempt pass. Use the retry documentation to interpret results; avoid presenting a retry as proof of correctness.
Synthetic example: what the report can establish
Five test entries: two expected, one unexpected, one flaky, one skipped. The attempts sum to 33,600 ms, including 2,100 ms on retries. This is not wall-clock time saved. A timeout on the flaky test suggests inspecting its wait or assertion, but cannot establish why it timed out.
Try these observations in the free analyzer. Export a brief without identifiers, then inspect your own trace privately.
A useful handoff
Write down the failed assertion, expected application state, the controlled change, before/after outcomes, and the next evidence that could disprove your leading explanation. Do not share credentials or raw customer data.
Need an AI-assisted investigation of one test? See the service scope and payment steps. The optional $49 pilot uses ChatGPT/Codex to evaluate sanitized evidence and includes a reproducibility assessment, confidence-qualified possible causes, a correction only when supported, and a rerun recipe. Scope and delivery date are agreed before payment; no guaranteed fix.
Anonymous daily views and action counts; no cookies, visitor identifiers or submitted content. Counts older than 30 days are deleted on the next measurement event. DNT/GPC opt out. Email is not end-to-end encrypted: do not send secrets, customer data or confidential manuscripts.