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
- Start a workflow that waits or sleeps long enough to cancel.
- Call
df.cancel(instance_id, reason).
- Inspect recent rows in
duroxide.history for that instance.
- 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.
Summary
When
df.cancel(instance_id, reason)cancels a workflow, the final cancellation-related failure event can contain an emptyinstance_idandexecution_id=0in 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_idand 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
df.cancel(instance_id, reason).duroxide.historyfor that instance.Impact
Telemetry or diagnostic pipelines that read event payloads directly cannot reliably correlate cancellation terminal events back to the workflow instance.