{"record":{"id":"4b1ae38d1d8f1c18","repo":"elsa-workflows/elsa-core","slug":"the-bpmn-continuation-evaluation-continuation-gettype-name","errorCode":null,"errorMessage":"The BPMN continuation '{evaluation.Continuation.GetType().Name}' is not supported by this host.","messagePattern":"The BPMN continuation '(.+?)' is not supported by this host\\.","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"error","filePath":"src/modules/Elsa.Bpmn/Hosting/BpmnScopeHost.cs","lineNumber":219,"sourceCode":"            await ApplyAsync(memory, evaluation);\n        });\n\n    private async ValueTask ApplyAsync(BpmnScopeMemory memory, BpmnEvaluation evaluation)\n    {\n        await new BpmnCommandApplier(_context, _process, memory).ApplyAsync(evaluation.Commands);\n\n        switch (evaluation.Continuation)\n        {\n            case BpmnContinuation.Complete complete:\n                // The scope completes because the interpreter said so, never because it ran out of children.\n                await _context.CompleteActivityAsync(new Outcomes(complete.Outcome));\n                break;\n            case BpmnContinuation.Defer:\n                break;\n            case BpmnContinuation.Fault fault:\n                throw new BpmnScopeFaultException(fault.Code, fault.Message);\n            default:\n                throw new NotSupportedException($\"The BPMN continuation '{evaluation.Continuation.GetType().Name}' is not supported by this host.\");\n        }\n    }\n\n    /// <summary>\n    /// Projects every diagnostic the interpreter has appended since the last evaluation onto this scope's own\n    /// execution log, keyed by element id. Under Option A only bound work has an activity id, so a gateway, an\n    /// intermediate event or a sequence flow has nothing else in the journal to say where a token went; this is\n    /// write-only and never read back by the interpreter or this host.\n    /// </summary>\n    /// <remarks>\n    /// Runs on <see cref=\"_context\"/> — this scope's own context — and never a child's: the diagnostic describes\n    /// this scope's decision about a child, and the child may already be torn down by the time this runs. Called\n    /// with the evaluation's own <see cref=\"BpmnEvaluation.State\"/>, before <c>Prune()</c> caps\n    /// <see cref=\"BpmnExecutionState.Diagnostics\"/> at 200 entries, because projecting from what was actually\n    /// persisted would lose whatever pruning already dropped. The last diagnostic id it has projected is kept in\n    /// <see cref=\"BpmnScopeMemory.DiagnosticsCursorPropertyKey\"/> so a resumed scope does not re-emit one a\n    /// previous evaluation already turned into a journal entry.\n    /// </remarks>","sourceCodeStart":201,"sourceCodeEnd":237,"githubUrl":"https://github.com/elsa-workflows/elsa-core/blob/fe9217bdfa0e27f0e09e45006eb6898f616e513d/src/modules/Elsa.Bpmn/Hosting/BpmnScopeHost.cs#L201-L237","documentation":"BpmnScopeHost.ApplyAsync switches over the interpreter's continuation types (Complete, Defer, Fault, …); any unrecognized continuation type falls into the default branch and throws NotSupportedException. Like the command applier's guard, this protects against version skew where a newer interpreter emits a continuation the host does not understand.","triggerScenarios":"A BpmnEvaluation whose Continuation object is of a type added by a newer interpreter version than this BpmnScopeHost supports (mixed package versions).","commonSituations":"Partially upgraded Elsa.Bpmn packages where the interpreter DLL is newer than the hosting DLL; custom continuations introduced by an extension the host does not handle.","solutions":["Align all Elsa.Bpmn package versions so host and interpreter come from the same release.","If you defined a custom BpmnContinuation subclass, extend ApplyAsync's switch to handle it.","Rebuild the application after upgrading to avoid stale mixed assemblies."],"exampleFix":"// before\n<PackageReference Include=\"Elsa.Bpmn.Interpreter\" Version=\"3.2.0\" />\n<PackageReference Include=\"Elsa.Bpmn.Hosting\" Version=\"3.1.0\" />\n// after\n<PackageReference Include=\"Elsa.Bpmn.Interpreter\" Version=\"3.2.0\" />\n<PackageReference Include=\"Elsa.Bpmn.Hosting\" Version=\"3.2.0\" />","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { await host.EvaluateAsync(...); }\ncatch (NotSupportedException ex) when (ex.Message.StartsWith(\"The BPMN continuation\")) { log.LogCritical(ex, \"Version skew between interpreter and host\"); throw; }","preventionTips":["Keep Elsa.Bpmn interpreter and host packages at identical versions.","Rebuild the app after upgrades to avoid stale assemblies.","Handle custom continuation types explicitly if you define them."],"tags":["bpmn","version-mismatch","unsupported-continuation"],"backgroundTag":"unsupported-operation","analyzedSha":"fe9217bdfa0e27f0e09e45006eb6898f616e513d","analyzedAt":"2026-09-13T20:32:34.702Z","contentChangedAt":"2026-09-13T20:32:34.702Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}