A validation failure is not an exception to hide. It is a record your system does not yet know how to trust.
That distinction matters in LLM extraction pipelines. A malformed invoice, an unexpected OCR layout, a model response that violates the schema, and a semantically impossible value may all reach the same line of validation code. If the only outcomes are “retry” or “drop,” the pipeline will either waste money repeating the same failure or silently lose work.
The production answer is a dead-letter path: a durable place for failed records to wait with enough evidence to explain, triage, and safely replay them.
The queue itself is the easy part. The hard part is designing the failure contract around it.
Validation is where routing begins






