Quick Start
How It Works
| Surface | Type | When populated |
|---|---|---|
TaskOutput.callback_error | Optional[str] | Only if a callback function raises |
TaskOutput.non_fatal_errors | Optional[list[str]] | All non-fatal errors (memory ops + callback) from this run |
Task.non_fatal_errors | list[str] | Same list, available on the Task instance directly |
Common Patterns
Pattern A: Skip to next task only when callback succeeded
Pattern B: Route failures to alerting system
User Interaction Flow
Best Practices
Don't treat non-fatal errors as success
Don't treat non-fatal errors as success
Always inspect the output before chaining tasks. A task that completed with non-fatal errors may not have produced the expected result.
Memory failures are non-fatal by design
Memory failures are non-fatal by design
If
quality_check=True was requested but the memory adapter isn’t ready, the task still completes. Check non_fatal_errors for memory-related issues.Raise explicitly for critical callbacks
Raise explicitly for critical callbacks
If a callback must block the workflow on failure, re-raise inside it. The framework currently captures the message but does NOT re-raise automatically.
Related
Task Output
TaskOutput reference and all available fields
Task Lifecycle
Task execution phases and configuration

