When intermittent browser test failures disappear on rerun, we recommend this process: investigate the original Run before calling the problem fixed or the test flaky. AlwaysQA preserves the Outcome and structured Evidence from that specific evaluation, with temporary browser replay when visual context matters.
Most teams make the same mistake. They rerun the workflow immediately, see a pass, and treat the new result as an explanation for the old one. It isn’t. A successful rerun proves that the Success Condition was met during the rerun; it doesn’t erase an earlier Failed Outcome or explain why the browser previously stopped.
This use case is about that gap: intermittent browser test failures, hard-to-reproduce browser bugs, and scheduled checks whose failure disappears before a developer opens the application.
The use case: the overnight Run failed, but the morning rerun passed
Imagine a scheduled checkout Test Case in a QA environment. It uses a dedicated QA Account and synthetic payment data. Its Success Condition is explicit: submitting the order must display a confirmation and add the order to the account history.
At 02:00, the scheduled Run finishes as Failed. The payment form was submitted, but the browser remained on “Processing,” and the confirmation never appeared.
At 09:15, a developer repeats the workflow. It passes.
| Evidence | Overnight Run | Morning rerun |
|---|---|---|
| Outcome | Failed | Passed |
| Last confirmed state | Payment submitted | Order confirmation displayed |
| Final observation | Page remained on “Processing” | Order appeared in account history |
| What it proves | The earlier Success Condition wasn’t met | The workflow worked during the later evaluation |
The second result is good news, but it leaves the investigation open. The earlier behavior could reflect application state, test data, authentication, a redirect, a delayed background job, or a dependency that recovered before morning. Browser Evidence shouldn’t choose among those causes without support.
Reality check: A pass after a failure isn’t a root-cause analysis. It is one more observation.
If this Test Case runs on a Daily or Weekly Schedule, see how recurring regression testing keeps critical flows under repeatable coverage.
A passing rerun does not invalidate the original Outcome
AlwaysQA separates Run State from Outcome:
| Field | Values | What it means |
|---|---|---|
| Run State | Queued, Running, Finished | Where the Run is in its lifecycle |
| Outcome | Passed, Failed, Needs Attention | What a Finished Run established |
Each Run stands on its own Evidence:
- Passed: the Evidence confirms that the Success Condition was met in that Run.
- Failed: the Evidence confirms that the expected behavior didn’t occur in that Run.
- Needs Attention: AlwaysQA couldn’t responsibly confirm pass or failure from the available Evidence.
A later pass doesn’t rewrite a previous failure. The same is true in reverse: an earlier pass doesn’t make a new Failed Outcome less important.
Be careful with the word flaky. One failure followed by one pass is a mismatch, not a diagnosis. Before you blame the Test Case, compare what actually ran: the Test Case version, inputs, application environment, deployment context when available, and the point where browser behavior diverged.
For the broader distinction between Failed, Needs Attention, and root-cause diagnosis, use the browser test failure diagnosis guide.
Start with the original Run, not a manual reconstruction
The original Run preserves the closest record of the failure as it happened. Review it in this order:
- Outcome and summary: what did the Run establish against the Success Condition?
- Observations: what meaningful browser states appeared before the Run finished?
- Action timeline: what did the browser do immediately before the unexpected state?
- Replay: does the visual sequence reveal timing, layout, redirect, or interaction context missing from the text?
This order prevents replay from becoming another slow search. A final observation that names a visible validation error may be enough to route the issue. A loading overlay that briefly intercepts a click may require visual review.
An illustrative original-Run record
For the checkout scenario, the useful record might look like this:
Test Case: Complete checkout with a QA Account Success Condition: Confirmation appears and the order is visible in account history Outcome: Failed Summary: Checkout was submitted, but the confirmation state wasn’t observed. Last confirmed observation: The browser accepted the checkout submission and displayed “Processing.” Final observation: No confirmation appeared, and the order wasn’t visible in account history. Last action: Waited for the checkout result after selecting “Place order.” Final URL:
https://qa.example.test/checkoutReplay: Available temporarily
This record narrows the boundary to the transition after submission. It doesn’t prove that the payment service failed, the frontend lost an update, or a background task exceeded a time limit. Those are hypotheses for the developer to test.
Use the Evidence to choose the next investigation
Don’t ask every developer to watch every replay. Route the Run according to what the Evidence already shows.
| Original Run Evidence | Best next action | Do not assume |
|---|---|---|
| Visible validation or application error | Check the relevant application logs and request records | The Test Case is flaky |
| Page remains in one state without progress | Inspect the background operation, response timing, and state updates | The browser simply needed more time |
| Redirect lands on an unexpected page | Review routing, authentication, and recent configuration changes | The original URL was wrong |
| Control appears late, moves, or is obscured | Review replay while available and inspect the UI transition | The backend caused the failure |
| Needs Attention with a specific reason | Follow the recommended action for the QA Account, Test File, Test Case, or Success Condition | A product defect was confirmed |
| Later Run passes under comparable conditions | Compare the two Run records and look for a changing dependency or state | The earlier failure no longer matters |
The goal is not to solve the incident inside the Run page. It is to enter engineering diagnosis with fewer unsupported branches.
Deep dive: compare Runs only when their context is comparable
“It passed for me” is weak evidence when the rerun didn’t use the same conditions. Before comparing Outcomes, check the context attached to each Run.
| Comparison point | Why it changes the interpretation |
|---|---|
| Test Case and version | An edited workflow or Success Condition may be testing something different. |
| QA Account selection | Account state, role, or authentication setup can change the path through the app. |
| Test File metadata | A replacement file is a new immutable input; its name, type, and size may differ. |
| Deployment or environment metadata | A rerun after a rollback, configuration change, or new release isn’t the same condition. |
| Time and application state | Expiring sessions, queued work, rate limits, and data cleanup can make behavior time-dependent. |
AlwaysQA keeps each Run’s historical record tied to the inputs and metadata available when it ran. Later changes don’t rewrite that finished Outcome. Environment or deployment details can only help when they were captured, so don’t invent missing context after the fact.
Consider a passwordless SSO workflow. The original Run may show that SSO completed and the dashboard loaded, while the next protected page redirected back to sign-in. If that page depends on an internal API, browser Evidence can’t distinguish an API error from rejected session state or a frontend routing decision. That is why application event records still matter; NIST’s log-management guidance describes their value for operational analysis and reconstruction.
A later pass with a fresh session doesn’t prove why the earlier session failed. It tells the developer where to compare authentication events, application logs, and request records.
This is where browser Evidence stops and application-side diagnosis starts. Without application-side records, the browser can identify the boundary but not explain an internal service decision.
Review replay before it expires, but do not make it the system of record
Browser replay is useful when sequence and appearance matter. It can show whether:
- a loading layer blocked the next action;
- the interface reset after submission;
- a redirect happened before the expected confirmation;
- a control appeared too late to be used; or
- the page stopped changing even though no explicit error appeared.
This matches a broader browser-testing practice: Microsoft’s Playwright Workspaces documentation uses reports and retained artifacts to investigate completed test Runs (Microsoft Learn: browser-test diagnostics). AlwaysQA’s implementation is its own: structured Evidence remains with the Run, while the provider-hosted browser replay is temporary.
Replay access is private and uses an authenticated, short-lived handoff. Review it promptly. If it has expired, the summary, observations, compact action timeline, and Run context remain available.
There is operational friction here. Someone must review time-limited replay, preserve the relevant visual finding in the Issue Report, and keep the Test Case observable. Evidence reduces reproduction work; it doesn’t remove maintenance, ownership, or application telemetry.
Turn the disappearing failure into a useful Issue Report
For a Failed Run, AlwaysQA can prepare an editable Markdown Issue Report. Its sections are predictable:
What happened → Expected result → Steps to reproduce → Key observations → Evidence → Run context.
The report includes up to five key observations, the first two and last three, plus the last recorded action. The authorized Run link remains the place to inspect the complete timeline and replay while it is available.
| Included in the handoff | Kept out or deliberately limited |
|---|---|
| Outcome and evidence-backed summary | Unsupported root-cause claims |
| Expected result and reproduction steps | The full action timeline in copied Markdown |
| Selected observations and last action | Test File contents |
| Sanitized URL and relevant Run context | URL query strings, fragments, and embedded user information |
| Test File name, type, and size when relevant | Known QA Account credentials |
Copying the report is explicit. AlwaysQA doesn’t silently create an issue in an external tracker. The developer can add logs, a suspected component, impact, owner, and links to both the original Run and later rerun.
Use Deployment QA History to keep the failed Run, later pass, Test Case version, and fix-and-rerun sequence connected over time.
Treat visual replay as potentially sensitive
AlwaysQA sanitizes exported Run information and excludes known credentials and Test File contents from the Issue Report. A replay, however, can display whatever the QA browser was allowed to see.
Use dedicated QA Accounts, synthetic records, and non-sensitive Test Files. Don’t put production credentials, payment-card details, confidential customer data, or regulated information into a browser workflow simply because the Run is automated.
A practical workflow for a failure that disappears
-
Do not dismiss the original Run. Confirm it is Finished and read its Outcome.
-
Preserve the fast-expiring context. If replay is available and visual behavior matters, review it now.
-
Mark the failure boundary. Record the last expected observation, the first unexpected state, and the preceding action.
-
Compare the rerun context. Check Test Case version, inputs, QA Account, environment, deployment metadata, and timing where available.
-
Choose the right branch. Failed goes to product investigation; Needs Attention goes to the stated corrective action.
-
Add application evidence. Inspect logs, traces, background work, authentication events, or configuration changes around the original Run time.
-
File the edited Issue Report. Link the original failure and later pass, assign an owner, and keep the causal conclusion open until the evidence supports it.
-
Verify the fix or monitor for recurrence. Run the same Test Case again and use later scheduled Runs to determine whether the behavior returns.
See how AlwaysQA works for the complete Test Case, Run, Outcome, and Evidence flow.
What changes for the team
| Without original-Run Evidence | With AlwaysQA |
|---|---|
| The rerun passed, so the incident is closed. | The pass and failure remain two separate, inspectable Outcomes. |
| Someone tries to reproduce the entire workflow from memory. | The failure boundary identifies where engineering should begin. |
| “Flaky” becomes the default explanation. | The team compares Run context before classifying the behavior. |
| The replay expires and the investigation loses its record. | Structured Evidence remains after visual replay is unavailable. |
| The ticket says “sometimes checkout fails.” | The Issue Report states expected behavior, observed behavior, selected Evidence, and Run context. |
The sales value is practical: fewer “cannot reproduce” loops, better developer handoffs, and less pressure to invent a cause just because the defect disappeared.
Investigate the Run that failed, not only the rerun that passed
Create a browser Test Case for a critical workflow and give it an observable Success Condition. When a scheduled Run fails, AlwaysQA preserves the original Evidence so your team can inspect what happened, compare later Runs, and start in the right part of the system.
Start using AlwaysQA and keep the failed Run in front of the investigation.
Frequently asked questions
Is a Test Case flaky if it fails once and passes on rerun?
Not necessarily. The two Outcomes show inconsistent observed behavior, but they don’t identify the cause. Compare the Run context and failure boundary before deciding whether the Test Case, application, data, environment, or a dependency changed.
What remains after browser replay expires?
AlwaysQA retains the structured Evidence: summary, observations, compact action timeline, and Run context. Replay is temporary and should be reviewed promptly when visual context matters.
Can AlwaysQA determine the root cause of an intermittent failure?
AlwaysQA identifies what the browser observed and whether the Success Condition was met. A developer may still need application logs, traces, database records, or configuration history to establish the cause.
What if the original Run finished as Needs Attention?
Follow the stored Attention Reason and recommended action. Needs Attention means the Run couldn’t support a pass-or-fail conclusion; it should not be filed as a confirmed product defect.