# SignalTask Signal-/User-/Manual task behaviour. ```javascript import * as elements from 'bpmn-elements'; import BpmnModdle from 'bpmn-moddle'; import { default as serialize, TypeResolver } from 'moddle-context-serializer'; const { Context, Definition } = elements; const typeResolver = TypeResolver(elements); const source = ` `; (async () => { const def = await run(); const [userTask] = def.getPostponed(); userTask.fail(new Error('Custom errror')); })(); async function run() { const moddleContext = await getModdleContext(source); const options = { Logger, }; const context = new Context(serialize(moddleContext, typeResolver)); const definition = new Definition(context, options); definition.run(); return definition; } function getModdleContext(sourceXml) { const bpmnModdle = new BpmnModdle(); return bpmnModdle.fromXML(sourceXml.trim()); } function Logger(scope) { return { debug: console.debug.bind(console, 'bpmn-elements:' + scope), error: console.error.bind(console, 'bpmn-elements:' + scope), warn: console.warn.bind(console, 'bpmn-elements:' + scope), }; } ```