Relationships
#1788 workflow validate does not resolve modelType on factory-pattern steps — a non-existent extension validates clean
Opened by randybias · 8/22/2026· Shipped 8/23/2026
swamp workflow validate does not resolve the modelType on a factory-pattern step, so a step naming an extension that does not exist validates clean.
Reproduced on swamp --version 20260822.011157.0-sha.06b61472.
Take any workflow with a factory-pattern step — one that names modelType + modelName rather than modelIdOrName:
task:
type: model_method
modelType: '@mirantis/nvue-rest'
modelName: ${{ 'sync-switch-optics-' + [HOST-1] }}
methodName: syncSwitchOpticsChange the modelType to an extension that does not exist:
modelType: '@mirantis/DOES-NOT-EXIST-probe'swamp workflow validate <name> still reports:
Summary: 8 passed
Result: PASSEDNo warning, no skipped-check note. (Verified the edit actually landed before running validate — the planted string is present in the file at the reported line.)
Why this matters. For steps using modelIdOrName, validate DOES resolve the model and its method — an unknown method there is reported as Method 'x' not found on model type 'y'. So the check exists; it simply is not reached on the factory-pattern branch. The result is that the two step forms have very different validation coverage while presenting the same "PASSED" summary, and the factory form is the one used for fleet fan-out, where a typo affects every target.
We hit this as a silent gap: a workflow validated clean and failed at run time on a modelType that had never been registered. We now run a separate checker that resolves method arg schemas per step to cover it, which is the shape of the missing check.
Suggested fix: resolve modelType on factory-pattern steps and report an unregistered type as a failure. If resolution is intentionally deferred for this form, reporting it as a SKIPPED check would be enough — the problem is that an unchecked step is indistinguishable from a passing one in the summary.
Shipped
Click a lifecycle step above to view its details.
stack72 commented 8/23/2026, 10:00:04 PM
Thanks @randybias for reporting this! The fix has been merged and a release is on its way. We appreciate your contribution to swamp.
Sign in to post a ripple.