Skip to main content
← Back to list
01Issue
BugOpenSwamp CLIPublic
AssigneesNone

Relationships

#1788 workflow validate does not resolve modelType on factory-pattern steps — a non-existent extension validates clean

Opened by randybias · 8/22/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: syncSwitchOptics

Change 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:  PASSED

No 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.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

8/22/2026, 7:28:59 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.