Bug
Both TaskHubGrpcClient.purge_orchestration and AsyncTaskHubGrpcClient.purge_orchestration construct PurgeInstancesRequest(instanceId=..., recursive=...) without isOrchestration=True.
The protobuf flag distinguishes orchestration versus entity single-instance purge requests. Its omitted boolean value is false.
Confirmed by capturing requests from both public client methods at commit ec9af14. Equivalent Go fix: microsoft/durabletask-go#165.
Actual and expected
Actual: both single-instance purge requests have isOrchestration=False.
Expected: orchestration purge requests explicitly carry isOrchestration=True in both sync and async paths.
This is a confirmed wire-request defect, not evidence that every service rejects the request or fails deletion. The Go investigation found an emulator accepted the old request.
Relevant code and scope
durabletask/client.py lines 859–863 and 1404–1408 at the investigated revision. Azure Managed clients and Azure Functions clients inherit these APIs; the Functions purge_instance_history compatibility alias delegates to the inherited async API.
Preserve recursion defaults/overrides, response conversion, and error propagation. Add request-level regression coverage for sync and async methods and appropriate provider compatibility coverage. Do not change polling/completion semantics, package versions, or dependency minimums.
Document user-visible correction in the applicable Unreleased changelogs.
Bug
Both
TaskHubGrpcClient.purge_orchestrationandAsyncTaskHubGrpcClient.purge_orchestrationconstructPurgeInstancesRequest(instanceId=..., recursive=...)withoutisOrchestration=True.The protobuf flag distinguishes orchestration versus entity single-instance purge requests. Its omitted boolean value is false.
Confirmed by capturing requests from both public client methods at commit ec9af14. Equivalent Go fix: microsoft/durabletask-go#165.
Actual and expected
Actual: both single-instance purge requests have
isOrchestration=False.Expected: orchestration purge requests explicitly carry
isOrchestration=Truein both sync and async paths.This is a confirmed wire-request defect, not evidence that every service rejects the request or fails deletion. The Go investigation found an emulator accepted the old request.
Relevant code and scope
durabletask/client.pylines 859–863 and 1404–1408 at the investigated revision. Azure Managed clients and Azure Functions clients inherit these APIs; the Functionspurge_instance_historycompatibility alias delegates to the inherited async API.Preserve recursion defaults/overrides, response conversion, and error propagation. Add request-level regression coverage for sync and async methods and appropriate provider compatibility coverage. Do not change polling/completion semantics, package versions, or dependency minimums.
Document user-visible correction in the applicable Unreleased changelogs.