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.