OpenBMB/ChatDev · warning · WorkflowCancelledError

Workflow execution cancelled

Error message

Workflow execution cancelled

What it means

Cooperative-cancellation guard: before/inside each major executor step, if context.cancel_event is set, a WorkflowCancelledError is raised so the run stops promptly and cleanly.

Source

Thrown at runtime/node/executor/base.py:146

        role: MessageRole,
        content: MessageContent,
        *,
        source: str | None = None,
        metadata: Dict[str, Any] | None = None,
        preserve_role: bool = False,
    ) -> Message:
        meta = dict(metadata or {})
        if source:
            meta.setdefault("source", source)
        return Message(role=role, content=content, metadata=meta, preserve_role=preserve_role)

    def _clone_messages(self, messages: List[Message]) -> List[Message]:
        return [message.clone() for message in messages]

    def _ensure_not_cancelled(self) -> None:
        event = getattr(self.context, "cancel_event", None)
        if event is not None and event.is_set():
            raise WorkflowCancelledError("Workflow execution cancelled")

View on GitHub (pinned to 4fb2db0ea9)

Solutions

  1. Treat WorkflowCancelledError as a normal exit: do not retry, propagate or mark the run cancelled
  2. If cancellation is premature, review what sets cancel_event (timeout, user action)
  3. Clean up partial artifacts (files, threads) in a finally block on the calling side
Defensive patterns

Strategy: try-catch

Validate before calling

if context.cancel_event and context.cancel_event.is_set():
    return  # skip before starting work

Try / catch

try:
    outputs = executor.execute(node, inputs)
except WorkflowCancelledError:
    mark_run_cancelled(); return

Prevention

When it happens

Trigger: User or supervisor sets the cancel_event while a node is executing (between provider calls, tool batches, thinking/memory phases).

Common situations: UI stop button; workflow timeout policy cancelling long agent loops; parent workflow cancelling subgraph runs.


AI-assisted analysis of OpenBMB/ChatDev@4fb2db0ea9 (2026-08-27). Data as JSON: /api/errors/505984deb7a895a1. Report an issue: GitHub.