# Understand what happened in a test run

Zerocheck records the exact test definition and revision that ran, the selected environment and browser location, and the outcome of each attempt. Start at the failing step, then inspect the evidence around it.

## A failed outcome and an incomplete run are different

| Result | What to do next |
| --- | --- |
| Passed | Review that the test and expected outcome cover the flow you intended. |
| Failed expected outcome | Inspect the assertion and browser state to investigate the behavior. |
| Needs input during import | Supply the missing setup, credential reference, fixture or expected outcome. |
| Could not run | Inspect the setup, interaction or service error; the requested flow has not been verified. |
| Passed on retry / flaky | Inspect the transient recovery and apply your team's merge policy. |

Runs can be queued, running, passed, failed, error or cancelled. A saved failing test remains failing; saving or editing a definition does not produce a new passing result.

## Evidence you can inspect

Run detail shows per-step results, before-and-after screenshots, error text, console warnings and errors, recovery notes and healing history. Failed steps expand by default. Historical attempts remain readable. If an artifact could not be captured, its error is recorded.

Video is recorded only when the environment has no configured secrets, because those values cannot be masked in recordings. Network responses can support assertions but are not stored as a network log. The result records how a step was resolved: directly, from a cached target, or using AI.

## How healing works

Zerocheck reuses a remembered target only while it still identifies the intended control. When that control moves, the agent can resolve it again from the step's description. The history shows the old target, replacement, reason and validation state.

A heal is saved as verified only when the complete unchanged test passes with independent evidence that the intended target, action and outcome were preserved. Otherwise it stays pending, or is rejected when the test fails. There is no additional run solely to confirm a repair.

A renamed control or a changed expected outcome needs review. Healing does not give the agent permission to rewrite your product's expected behavior.

A remembered control that is disabled fails the step; the agent does not switch to an enabled lookalike. Its valid hint stays available if the same control becomes enabled later. If a remembered target becomes ambiguous, the lookup fails and the step must prove one unique target afresh; if it cannot, the step fails. When the ambiguity is real, edit the test to identify the intended control or region, then save and run the new revision.

Observation and target validation share the step deadline. If optional recovery observation is temporarily unavailable, ordinary grounding can still use the remaining budget. Policy failures, ambiguous targets, failed mandatory validation and uncertain dispatched actions do not permit that fallback or a repeated action.

## How retries work

A transient AI-service error can be retried once during a step in the same browser. If the test then passes, it is labeled flaky. Assertion, configuration and policy failures are not retried into passing results.

Each test runs once. Neither the hosted browser nor the CLI restarts a whole test after application actions, which avoids repeating writes without a verified reset of test state. There is no retry count to configure. Use `--fail-on-flaky` in the CLI when a pass after a retry should exit 1 for a blocking test.

## Where results appear

Hosted runs and CLI runs both appear in the web app. A CLI run's record is made on your instance as it runs, and its verdict is decided there. The terminal summarizes outcomes and links to results; `--json` writes the run record to a file. There is no pull request comment or job summary.

[Run in CI](https://tryzerocheck.com/docs/github-actions/) · [Data and credentials](https://tryzerocheck.com/docs/security/) · [Create a test](https://tryzerocheck.com/docs/web-app/)

---
Canonical: https://tryzerocheck.com/docs/results/
Updated: 2026-11-01
