Non-fatal errors expose callback and memory failures that used to be silently swallowed, so your agent can see what went wrong without crashing the workflow.Documentation Index
Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
Use this file to discover all available pages before exploring further.
Important Change: LLM errors are no longer non-fatal by default. They now raise
LLMError exceptions instead of being captured as non-fatal errors. See Structured LLM Errors for details.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 |
Error Classification
Non-Fatal Errors (Captured)
These errors are captured and stored innon_fatal_errors without stopping task execution:
- Callback failures: Exceptions in task
callbackfunctions - Memory operation failures: Memory storage, retrieval, or quality check failures
- Non-critical integrations: Optional service failures
Fatal Errors (Raised)
These errors now raise exceptions and stop task execution:- LLM errors: Chat completion failures (now raise
LLMError) - Tool execution failures: Critical tool failures (raise
ToolExecutionError) - Validation errors: Configuration or input validation failures
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

