elsa-workflows/elsa-core · error · BpmnBindingException
BPMN element ' ' is a call activity that names no…
Error message
BPMN element '{call.ElementId}' is a call activity that names no calledElement, so there is no workflow definition to dispatch. What it means
A BPMN call activity must name the workflow definition to invoke via its calledElement attribute. This error is thrown when the call activity has no calledElement, so there is nothing to dispatch at runtime.
Solutions
- Set the calledElement attribute on the named call activity to the ID/handle of the target workflow definition.
- Verify the target definition exists and is deployed in the importing application.
- Re-export the BPMN ensuring the modeling tool writes calledElement for every call activity.
Example fix
// before <bpmn:callActivity id="Call1" name="Run sub process" /> // after <bpmn:callActivity id="Call1" name="Run sub process" calledElement="OrderFulfillment" />
Defensive patterns
Strategy: validation
Validate before calling
var badCalls = doc.Descendants().Where(e => e.Name.LocalName == "callActivity")
.Where(e => string.IsNullOrWhiteSpace((string?)e.Attribute("calledElement")))
.Select(e => (string?)e.Attribute("id")).ToList();
if (badCalls.Any()) throw new InvalidOperationException($"Call activities missing calledElement: {string.Join(", ", badCalls)}"); Type guard
static bool HasCalledElement(XElement callActivity) =>
!string.IsNullOrWhiteSpace((string?)callActivity.Attribute("calledElement")); Try / catch
try { await importer.ImportAsync(bpmn); }
catch (BpmnBindingException ex) when (ex.Message.Contains("names no calledElement"))
{
logger.LogError(ex, "Set calledElement on the call activity to the target definition.");
} Prevention
- Require calledElement on every call activity in your BPMN authoring checklist
- Verify target definition IDs exist in the importing application
- Model call activities through a template that enforces calledElement
When it happens
Trigger: BpmnWorkBinder.CalledElementOf (called from CreateActivity for a CallProcess binding) finds call.CalledElement is null or whitespace and throws.
Common situations: Drawing a call activity in a modeler but forgetting to set the called process; renaming the target definition and clearing the reference; importing a document exported with the attribute stripped.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- An < : > element declares no ' ', so there is nothing to…
- An < : > element of the ' ' binding declares no ' '.
- BPMN element ' ' ( ) of process ' ' carries an < : >…
- BPMN element ' ' binds process activity ' ' as the work of…
- BPMN element ' ' binds work ' ', which activity ' ' does…
AI-assisted analysis of elsa-workflows/elsa-core@fe9217bdfa (2026-09-13).
Data as JSON: /api/errors/7fc21e970086d75d.
Report an issue: GitHub.
Appendix: source
Thrown at src/modules/Elsa.Bpmn.Interchange/Binding/BpmnWorkBinder.cs:187
}
}
private static TimeSpan IsoDurationOf(BpmnWorkBinding.TimerWait timer)
{
try
{
return XmlConvert.ToTimeSpan(timer.IsoDuration);
}
catch (Exception exception) when (exception is FormatException or OverflowException or ArgumentNullException)
{
throw new BpmnBindingException($"BPMN element '{timer.ElementId}' declares the timer duration '{timer.IsoDuration}', which is not an ISO-8601 duration Elsa can wait for.");
}
}
private static string CalledElementOf(BpmnWorkBinding.CallProcess call) =>
!string.IsNullOrWhiteSpace(call.CalledElement)
? call.CalledElement
: throw new BpmnBindingException($"BPMN element '{call.ElementId}' is a call activity that names no calledElement, so there is no workflow definition to dispatch.");
}
View on GitHub (pinned to fe9217bdfa)