From 5a06a6a1efe869e79894787923f59da91ec1618f Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Thu, 19 Dec 2024 08:37:16 -0500 Subject: [PATCH] Don't require status.details in gRPC error --- temporalio/client.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/temporalio/client.py b/temporalio/client.py index 66a0eba8..4b1c561d 100644 --- a/temporalio/client.py +++ b/temporalio/client.py @@ -6098,17 +6098,22 @@ def on_start( st for st in multiop_failure.statuses if ( - st.details - and not st.details[0].Is( - temporalio.api.failure.v1.MultiOperationExecutionAborted.DESCRIPTOR + st.code != RPCStatusCode.OK + and not ( + st.details + and st.details[0].Is( + temporalio.api.failure.v1.MultiOperationExecutionAborted.DESCRIPTOR + ) ) - and st.code != RPCStatusCode.OK ) ), None, ) if status and status.code in list(RPCStatusCode): - if status.code == RPCStatusCode.ALREADY_EXISTS: + if ( + status.code == RPCStatusCode.ALREADY_EXISTS + and status.details + ): details = temporalio.api.errordetails.v1.WorkflowExecutionAlreadyStartedFailure() if status.details[0].Unpack(details): err = temporalio.exceptions.WorkflowAlreadyStartedError(