Description
When receiving an update response, the Python SDK does not set in the UpdateHandle
the run ID of the run that the update landed on:
https://github.com/temporalio/sdk-python/blob/main/temporalio/client.py#L5339
In contrast, Typescript and Go and presumably others, all set this:
https://github.com/temporalio/sdk-go/blob/master/internal/internal_workflow_client.go#L2356
One consequence is that the PollWorkflowUpdate
requests issued by the Python update handle do not contain a run ID (and so will land on any run), whereas for other SDKs those requests are constrained to the run that the update landed on.
It's possible that there are bugs here. For example, it seems that in Python a poll request might be able to target a different update with the same update ID, that exists in a post-CAN or post-reset run.