Error Handling in Prompt Chains
Validating intermediate outputs and recovering from chain failures.
Why Chains Fail
Prompt chains introduce new failure modes that single-prompt systems do not have. Each step can fail in its own way, and failures compound — a bad Step 2 output corrupts every downstream step.
Common failure modes:
- Model returns malformed JSON that cannot be parsed
- Model misunderstands the task and produces semantically wrong output
- Rate limits or API timeouts cause step failures
- Context window exceeded in a long chain
- Model hallucinates data that subsequent steps treat as fact
Output Validation After Every Step
The first line of defense is validating output immediately after each step before passing it to the next. Never assume the model returned what you asked for.
import json
def validate_json_output(raw_text, required_fields):
'Parse and validate that required fields are present in model output.'
try:
data = json.loads(raw_text.strip())
except json.JSONDecodeError as e:
raise ValueError(f'Invalid JSON: {e}. Raw: {raw_text[:200]}')
missing = [f for f in required_fields if f not in data]
if missing:
raise ValueError(f'Missing required fields: {missing}. Got: {list(data.keys())}')
return data
# Usage after a chain step
raw = '{"sentiment": "positive", "priority": "high"}'
validated = validate_json_output(raw, required_fields=['sentiment', 'priority'])
print('Valid:', validated)All lessons in this course
- What Is Prompt Chaining?
- Output-to-Input Patterns
- Sequential Transformation Chains
- Error Handling in Prompt Chains