Skip to content

Cancelled workflows are recorded as Failed in duroxide.executions status #170

@pinodeca

Description

@pinodeca

Summary

Cancelled workflows can be recorded as Failed in duroxide.executions.status, making cancellations indistinguishable from real failures when querying execution rows.

Expected behavior

Cancelled executions should have a distinct terminal status, such as Cancelled, so queries and dashboards can separate user-requested cancellation from failures.

At minimum, the status vocabulary exposed through df.status() and duroxide.executions.status should agree on terminal states, even if casing differs.

Actual behavior

After cancelling a workflow:

  • df.status(instance_id) can report cancelled.
  • History events show cancellation details.
  • duroxide.executions.status records the execution as Failed.

Repro shape

  1. Start a long-running workflow.
  2. Cancel it with df.cancel(instance_id, reason).
  3. Query df.status(instance_id).
  4. Query duroxide.executions.status for the same instance.
  5. Observe that the durable function status and execution status disagree on whether the terminal state is cancellation or failure.

Impact

Failure dashboards overcount real failures, retry logic can treat user cancellations as retryable failures, and consumers must inspect history payloads to identify cancellations.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions