Relationships
#405 Workflow validation should resolve modelType for direct-execution steps
Opened by jentz · 5/21/2026· Shipped 5/21/2026
When a workflow step uses direct type execution (modelType + modelName instead of modelIdOrName), swamp workflow validate skips input validation entirely:
"Step inputs for 'guard' in job 'inventory' (rds-inventory-guard.verify) (model not found, skipped)"The "model not found" reason is misleading. The model type is fully resolvable (it's a pulled extension) — only the named instance doesn't exist at validate time, which is expected for direct execution because the instance is created on the fly at run time.
Because validation skips, typos in inputs: keys or wrong-shape values are caught only at workflow run time, potentially with several prior steps already complete. For audit-style workflows where step 1 may take seconds and step 5 may take minutes, a silly typo in step 5's inputs means a slow failure.
Implementation scope:
- In the step-input validator, when the task has
modelTypeset, resolve the type via the model type registry (same path the runtime uses to instantiate it). - Validate the step's
inputs:against the resolved type'sglobalArgumentsschema and the named method'sargumentsschema. (Empiricallyinputs:flows to both — this should be confirmed and documented.) - Replace the existing "model not found, skipped" message with something more accurate, e.g. "model instance not found at validate time — type-scoped input validation applied".
This would make direct execution a first-class peer to modelIdOrName for catch-at-validate-time confidence.
Shipped
Click a lifecycle step above to view its details.