VFX-D-1202¶
Title¶
DanglingTargetReference
Explanation¶
A step's target names a service or dependency that the suite's environment block never declares.
target is a logical name: it must match a key under environment.services or under
environment.dependencies — the composed schema's own field description allows either, because a
broker or store can legitimately be supplied as a customer-owned service rather than as a managed
dependency.
Reported as a warning in the semanticDiagnostics channel, never in the schema errors channel:
JSON Schema can constrain the shape of target (a non-empty string) but has no way to express
"this string must match a key declared elsewhere in the document".
Common causes¶
- A typo in the target name, or in the corresponding
environmentkey (ordres-apivsorders-api). - A step copied from another suite whose environment declared a service this one does not.
- An
environmentblock that was never written at all — everytargetin the suite then dangles. - Renaming a service under
environment.serviceswithout updating the steps that point at it.
Fixes¶
- Declare the name under
environment.services(for an HTTP or gRPC service) or underenvironment.dependencies(for a database, broker, cache, or object store). - Or change the step's
targetto a name the environment already declares —summary.servicesandsummary.dependencieson the samevalidate_suiteresult list them. - Check
validate_suite'ssummarybefore assuming a name is absent: names containing a${...}reference are omitted from the summary for secret hygiene, but the rule itself tests against the complete, unfiltered set.