The first error (when the sub-module was hygienic) simply reports the schema mismatch, but does not indicate that the missing field is otherwise required.
The second error (when the sub-module was non-hygienic) shows that the error was raised in "
worker:Map", which says that the missing field was needed in a Map operator expression.
In all cases if a field is used within a module, that field must be supplied, and ideally contains, when the application is running, a data value useful for the expression that references it.
If the missing fields are not important to the business purpose of the sub-module and may contain a 'null' value, there two common ways to enforce the schema on the arc to match the needed Named Schema.
A) Use a Union operator to merge a nearly complete schema with the expected schema from an unused input stream.
B) Use a Map operator with a Named Schema to mutate the input tuple into a tuple with the Named Schema type using expression:
Add, *, TheNamedSchema(input1.* as *) For example:
For correctness, the Named Schema should be a superset of the supplied but incomplete schema.