Incidents
Release-backed guide to faults, incidents, retries, and operator recovery in Elsa 3.8.0.
In Elsa release/3.8.0, an incident is the runtime record created when an activity or workflow faults. Incidents answer "what failed, where, and with which exception details?" They are separate from retry policy and separate from operator recovery actions.
Use this page to understand:
what Elsa records when work faults
how incident strategies affect the workflow sub-status
where to inspect incidents in Studio and the API
when to use resilience retries versus operational retries
For the configuration surface, see Configuration. For the built-in strategies, see Strategies.
What Elsa records when an activity faults
When an unhandled exception escapes an activity, Elsa's activity exception middleware:
marks the activity execution as
Faultedcaptures an
ExceptionStateappends an
ActivityIncidenttoWorkflowExecutionContext.Incidentsresolves the configured incident strategy and invokes it
Each incident includes:
ActivityIdActivityNodeIdActivityTypeMessageExceptionTimestamp
Elsa also writes execution-log entries such as Started, Suspended, and Faulted, so incidents and journal entries complement each other instead of duplicating each other.
Workflow faults versus activity incidents
Activity-level incident strategies do not decide everything about workflow failure.
If an activity throws, the activity is already marked faulted and the incident is already recorded before the strategy runs.
The strategy mainly decides whether the overall workflow transitions to
WorkflowSubStatus.Faultedor keeps running.If an exception escapes the workflow pipeline itself, Elsa records an incident and transitions the workflow to
Faulteddirectly.
In practice, that means ContinueWithIncidentsStrategy is not an automatic retry mechanism. It only prevents the workflow from being faulted immediately for activity-level incidents.
Where incidents are stored and surfaced
In release/3.8.0, incidents are stored on WorkflowState.Incidents and flow through the normal workflow instance APIs and Studio runtime views.
Elsa Studio
Studio exposes incidents in two main places:
the workflow instance list can filter by
Has Incidentsthe workflow instance viewer shows an Incidents tab with the recorded message and exception payload
When resilience retries are enabled for an activity, Studio also surfaces a Retries tab for activity executions that recorded retry attempts.
Runtime APIs
Use these runtime surfaces during troubleshooting:
GET /workflow-instances/{id}to inspectworkflowState.incidentsGET /workflow-instances/{id}/journalPOST /workflow-instances/{id}/journalto filter journal eventsGET /resilience/retries/{activityInstanceId}when the resilience feature is enabled and retry attempts were recorded
Use incidents for the failing activity and exception details. Use the journal for the sequence of events around the failure.
Choosing the right recovery path
Elsa has three different recovery stories in 3.8.0.
1. Change incident strategy
Use an incident strategy when you want to control whether an activity fault should fault the whole workflow immediately or let the workflow continue with a recorded incident.
This is a workflow-behavior decision, not a retry policy.
2. Use resilience retries for transient activity failures
Use resilience when an activity should retry automatically inside the same execution attempt before it becomes an incident.
In release/3.8.0:
the resilience feature evaluates an activity's
resilienceStrategyconfigurationretry attempts are recorded only when a configured resilience pipeline actually retries
the HTTP module registers
HttpResilienceStrategyas an available strategy type
For custom strategy types, configuration, resilient activities, and retry recorders, see Custom resilience strategies.
This is the right fit for transient downstream failures such as 429, 503, timeouts, or short network interruptions.
3. Retry faulted workflow instances operationally
Use the Alterations retry endpoint when the workflow instance has already faulted and you want to retry the faulted activities after investigation or a fix.
release/3.8.0 exposes:
The request requires workflowInstanceIds and optionally activityIds. When activityIds is omitted, Elsa retries all incident activity IDs from the workflow state's incident list.
This endpoint belongs to the Alterations module and requires the run:alterations permission. See Applying Alterations REST API.
Practical troubleshooting flow
For most production incidents:
Open the workflow instance in Studio or retrieve the workflow instance from the API.
Inspect
workflowState.incidentsto identify the failing activity and exception.Check the workflow journal for the surrounding
Faulted,Suspended, and resume events.If the failure was transient and resilience should have handled it, inspect the activity execution retries.
Decide whether to:
fix the root cause and retry the faulted activity with alterations
cancel the workflow instance
change the workflow's incident strategy or resilience configuration for future runs
Related docs
Last updated