Documentation / VFX-D-1208

VFX-D-1208

Title

DuplicateStepId

Explanation

Two or more steps in the suite declare the same id. Step ids identify a step in the engine's reporting and in its failure messages, so duplicates make a run's output ambiguous: two rows in a report, one name.

JSON Schema cannot express this, which is why it is a semantic rule rather than a schema keyword. The composed schema constrains an id's shape (^[A-Za-z_][A-Za-z0-9_-]*$) but the only array-level uniqueness keyword JSON Schema offers, uniqueItems, compares whole elements — two steps sharing an id while differing anywhere else satisfy it.

Reported once, at the duplicate rather than at the first declaration: the first occurrence is legitimate and the second is what has to change. A third occurrence produces a second finding.

Matching is ordinal and case-sensitive, matching how the engine identifies a step: check-health and Check-Health are two distinct ids, not a duplicate.

Reported as a warning in the semanticDiagnostics channel.

Common causes

  • A step duplicated to create a variant, with the body edited but the id left alone.
  • Two authors adding steps to the same suite with an obvious generic name (call, assert, setup).
  • A merge that brought both sides' version of the same step into one file.

Fixes

  • Rename the later step to something that describes what it does — ids appear verbatim in run reports, so a distinct name pays for itself when the suite fails.
  • If the two steps really are the same step twice, delete one.