Skip to content

Cancellation failure history event has empty instance_id and execution_id=0 in payload #169

@pinodeca

Description

@pinodeca

Summary

When df.cancel(instance_id, reason) cancels a workflow, the final cancellation-related failure event can contain an empty instance_id and execution_id=0 in the JSON event payload.

The history row itself may still be associated with the correct instance, but consumers that inspect the event payload directly lose the link between the cancellation event and the instance.

Expected behavior

The final cancellation/failure event payload should include the same instance_id and execution identifier as the cancellation request and the history row that contains the event.

Actual behavior

The cancellation request event includes the expected identifiers, but the subsequent failure/cancelled terminal event payload can contain:

{
  "instance_id": "",
  "execution_id": 0
}

Repro shape

  1. Start a workflow that waits or sleeps long enough to cancel.
  2. Call df.cancel(instance_id, reason).
  3. Inspect recent rows in duroxide.history for that instance.
  4. Compare the identifiers in the cancellation request event with the identifiers in the terminal failure/cancelled event payload.

Impact

Telemetry or diagnostic pipelines that read event payloads directly cannot reliably correlate cancellation terminal events back to the workflow instance.

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