@@ -70,9 +70,9 @@ class Action:
7070 step_id : str
7171 step_run_id : str
7272 action_id : str
73- action_payload : str
7473 action_type : ActionType
7574 retry_count : int
75+ action_payload : JSONSerializableDict = field (default_factory = dict )
7676 additional_metadata : JSONSerializableDict = field (default_factory = dict )
7777
7878 child_workflow_index : int | None = None
@@ -268,15 +268,19 @@ async def _generator(self) -> AsyncGenerator[Action | None, None]:
268268 # Process the received action
269269 action_type = assigned_action .actionType
270270
271- if (
272- assigned_action .actionPayload is None
273- or assigned_action .actionPayload == ""
274- ):
275- action_payload = None
276- else :
277- action_payload = self .parse_action_payload (
278- assigned_action .actionPayload
271+ action_payload = (
272+ {}
273+ if not assigned_action .actionPayload
274+ else self .parse_action_payload (assigned_action .actionPayload )
275+ )
276+
277+ try :
278+ additional_metadata = cast (
279+ dict [str , Any ],
280+ json .loads (assigned_action .additional_metadata ),
279281 )
282+ except json .JSONDecodeError :
283+ additional_metadata = {}
280284
281285 action = Action (
282286 tenant_id = assigned_action .tenantId ,
@@ -289,11 +293,10 @@ async def _generator(self) -> AsyncGenerator[Action | None, None]:
289293 step_id = assigned_action .stepId ,
290294 step_run_id = assigned_action .stepRunId ,
291295 action_id = assigned_action .actionId ,
292- ## TODO: Figure out this type - maybe needs to be dumped to JSON?
293- action_payload = action_payload , # type: ignore[arg-type]
296+ action_payload = action_payload ,
294297 action_type = action_type ,
295298 retry_count = assigned_action .retryCount ,
296- additional_metadata = assigned_action . additional_metadata ,
299+ additional_metadata = additional_metadata ,
297300 child_workflow_index = assigned_action .child_workflow_index ,
298301 child_workflow_key = assigned_action .child_workflow_key ,
299302 parent_workflow_run_id = assigned_action .parent_workflow_run_id ,
0 commit comments