Skip to content

[Hackathon] Runs return verdict: blocked on verbose/multi-branch assertions even when the page is correct #175

Description

@lxcario

Summary

Frontend runs intermittently finish with verdict: blocked / executionStatus: completed even when the page under test rendered correctly. The trigger is the shape of the plan/assertion, not a product defect: verbose "either A or B … and not broken" OR-assertions, or plans that navigate many items sequentially, exhaust the agent's step/runway budget before it emits a clean pass/fail verdict.

Environment

  • CLI: testsprite (latest)
  • Test type: frontend (--plan-from)

Reproduction pattern

  1. Author a plan whose final assertion is a two-branch OR, e.g. "verify either an interactive graph canvas OR a clear empty-state message, rather than an empty or broken container."
  2. Run against a page that clearly satisfies one branch (heading + empty-state button visible).
  3. The agent re-checks both branches; its own run summary states the page is correct ("PASS"), but the verdict comes back blocked because the budget ran out before a decisive verdict was emitted.

The same failure mode reproduces with plans that walk many nav items in a single run (e.g. 11 sidebar links sequentially — every executed step passed, but the run blocked before finishing).

Expected

  • Verbose / conditional assertions shouldn't consume enough budget to block a verdict on a correct page, or
  • The runner should surface a clearer signal that the block was budget/plan-shape driven (distinct from an infra block), and/or
  • The practical assertion-complexity ceiling should be documented so authors know the limit up front.

Actual

verdict: blocked with no product defect. The only reliable fix we found was to rewrite each assertion to be single and decisive ("verify heading X and button Y") — a plan-authoring workaround rather than a runner behavior.

Impact

Correct pages report as blocked, which is easy to misread as a product failure. Authors have to learn by trial that FE assertions must be minimal — this isn't documented anywhere.

Suggested fix

Either raise (and clearly report) the per-run step budget, distinguish "blocked (budget / plan-shape)" from "blocked (infra)", or document an assertion-complexity guideline for frontend plans.


Filed as part of TestSprite S3 Hackathon dogfooding (project: Norahttps://github.com/lxcario/Nora). Happy to share the exact plan JSON, the test plan put fix, and run IDs for the blocked→green arcs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions