An entry that cannot be built is skipped, not fatal
One broken entry must not cost the workflow its whole contract, so the build drops it and carries on.
The rule
Normative: this is the rule
- An entry that cannot be resolved (the node it names is missing, the node declares no such port) is skipped with a logged warning, and the remaining entries are still built.
- An entry that is structurally malformed, missing or empty in
name,node_idorport, is likewise skipped and never contributes to the contract.
What it means
A manifest can go wrong in two different ways, and neither costs the workflow
the rest of its contract. An entry can be structurally malformed — its
name, node_id or port missing or empty — in which case it never named
anything to resolve in the first place. Or it can be well-formed but point
nowhere real: a node that is not in the graph, or a port its node's own
type never declared. Either way the entry is dropped and the build carries on with
whatever else the manifest names.
Example
{ "name": "gone", "node_id": "ghost", "port": "key" }{ "name": "gone", "node_id": "n1", "port": "nope" }{ "node_id": "n1", "port": "key" }None of the three contributes a property to the built contract; a valid sibling entry elsewhere in the same manifest still would.
Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · MAN-8 · changed in spec 1.0