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
- 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."
- Run against a page that clearly satisfies one branch (heading + empty-state button visible).
- 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: Nora — https://github.com/lxcario/Nora). Happy to share the exact plan JSON, the test plan put fix, and run IDs for the blocked→green arcs.
Summary
Frontend runs intermittently finish with
verdict: blocked/executionStatus: completedeven 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
testsprite(latest)--plan-from)Reproduction pattern
blockedbecause 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
Actual
verdict: blockedwith 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: Nora — https://github.com/lxcario/Nora). Happy to share the exact plan JSON, the
test plan putfix, and run IDs for the blocked→green arcs.