Errors¶
WowData⢠raises instructional WowDataUserError exceptions.
Each error has:
- a stable code (for recognition and automation)
- a clear message
- a remediation hint
Example:
[E_SOURCE_NOT_FOUND] Source file not found: 'missing.csv'.
Hint: Check the path, working directory, and filename.
WowDataUserError¶
This is the main user-facing exception type exposed by the package.
It carries:
code: a stable machine-friendly error codemessage: a short explanationhint: an optional remediation hint
This design is meant to make errors easier to teach from, easier to automate around, and easier to search for in documentation and tests.
Error Families¶
Source Errors
These errors come from source construction, source reading, or source schema handling.
Common examples:
E_SOURCE_URI_TYPE: invalid source URI typeE_SOURCE_TYPE_INFER: source type could not be inferredE_SOURCE_TYPE_UNSUPPORTED: unsupported source typeE_SOURCE_NOT_FOUND: source file missingE_SOURCE_READ: source could not be opened or readE_SOURCE_TABLE_UNSUPPORTED: unsupported source table materialization
Typical fixes:
- check the input path
- provide
type="csv"explicitly when inference is ambiguous - verify delimiter and encoding options
Sink Errors
These errors come from sink construction or writing output.
Common examples:
E_SINK_TYPE_INFER: sink type could not be inferredE_SINK_TYPE_UNSUPPORTED: unsupported sink typeE_SINK_DIR_NOT_FOUND: output directory does not existE_SINK_NOT_WRITABLE: output directory is not writableE_SINK_WRITE: generic sink write failureE_SINK_WRITE_UNSUPPORTED: unsupported sink write operation
Typical fixes:
- create the output directory first
- check permissions
- confirm the sink path ends in
.csvfor v0
Pipeline And YAML Errors
These errors come from pipeline structure, YAML parsing, IR normalization, or serialization.
Common examples:
E_PIPELINE_STEP: invalid step type passed toPipeline.then(...)E_PIPELINE_ORDER: transform appears after sinkE_PIPELINE_STEP_TYPE: unknown step type inside a pipelineE_YAML_IMPORT: YAML library unavailableE_YAML_PARSE: YAML parsing failedE_IR_ROOT,E_IR_PIPELINE,E_IR_SOURCE,E_IR_SINK,E_IR_STEP,E_IR_STEPS,E_IR_TRANSFORM,E_IR_VERSION: invalid serialized pipeline structure
Typical fixes:
- check YAML indentation and quoting
- keep pipelines linear in v0
- ensure serialized pipeline objects match the expected WowData structure
Cast Errors
These errors come from cast.
Common examples:
E_CAST_TYPES: invalidtypesmappingE_CAST_KEY: invalid cast mapping keyE_CAST_TYPE_UNSUPPORTED: unsupported target typeE_CAST_ON_ERROR: invalid cast error policyE_CAST_MISSING_COL: cast refers to a missing columnE_CAST_COERCE: a value could not be coercedE_CAST_INTERNAL: unexpected internal failure while casting
Expression And Derive/Filter Errors
These errors come from the shared expression system used by derive and filter.
Shared parse-level example:
E_EXPR_PARSE: low-level expression parse failure
Derive examples:
E_DERIVE_PARAMSE_DERIVE_EXISTSE_DERIVE_PARSEE_DERIVE_UNKNOWN_COLE_DERIVE_TYPEE_DERIVE_UNSUPPORTED
Filter examples:
E_FILTER_PARAMSE_FILTER_PARSEE_FILTER_UNKNOWN_COLE_FILTER_TYPEE_FILTER_UNSUPPORTED
Typical fixes:
- check column spelling and case
- use the shared Expression DSL correctly
castearlier so numeric comparisons or arithmetic behave as expected
Select And Drop Errors
These errors come from column-shaping transforms.
Common examples:
E_SELECT_PARAMSE_SELECT_UNKNOWN_COLE_DROP_PARAMSE_DROP_UNKNOWN_COL
Typical fixes:
- verify the column names against the current schema
- make sure the transform is placed after any step that creates the needed columns
String Errors
These errors come from the string transform family.
Common examples:
E_STRING_PARAMS: invalid action parametersE_STRING_PATTERN: invalid regex patternE_STRING_GROUP: invalid regex capture groupE_STRING_UNKNOWN_COL: missing source columnE_STRING_EXISTS: target column collisionE_STRING_ACTION: runtime error inside a string action
Typical fixes:
- confirm the action-specific arguments are correct
- check regex groups when using
regex_extract - set
overwrite=trueifnewtargets an existing column intentionally
Validate Errors
These errors come from the validate transform.
Common examples:
E_VALIDATE_PARAMS: invalid validate parametersE_VALIDATE_IMPORT: Frictionless is unavailableE_VALIDATE_NO_SCHEMA: validation requires schema but none is knownE_VALIDATE_READ: sampling failedE_VALIDATE_FAILED_TO_RUN: validation engine failed to executeE_VALIDATE_INVALID: validation completed and the data was invalid
Typical fixes:
- install
frictionless - provide or infer schema before validating
- set
strict_schema=falsewhen appropriate
Join Errors
These errors come from join.
Common examples:
E_JOIN_PARAMS: invalid join configurationE_JOIN_RIGHT/E_JOIN_RIGHT_READ: invalid or unreadable right-hand sourceE_JOIN_READ_HEADERS: headers could not be readE_JOIN_UNKNOWN_COL: join key column missing on one sideE_JOIN_KEY_TYPE_MISMATCH: likely left/right key type mismatchE_JOIN_FAILED: join execution failed
Typical fixes:
- use
onwhen key names match - use
left_on/right_onwhen key names differ castjoin keys so both sides use compatible types- inspect duplicate keys if a join behaves unexpectedly
Practical Guidance¶
When reading a WowData error:
- look at the
codefirst - read the short message for the failure category
- follow the
Hint:text before changing code blindly
If you are using the CLI:
- parse/load failures typically surface before execution
- runtime transform and sink failures surface during
run
For full code/message coverage, see tests in wowdata/tests/ and compact table in
REFERENCE.md.