Skip to content

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

Description

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions