@@ -807,9 +807,14 @@ def _apply_resolve_child_workflow_execution(
807807 ret : Optional [Any ] = None
808808 if job .result .completed .HasField ("result" ):
809809 ret_types = [handle ._input .ret_type ] if handle ._input .ret_type else None
810+ context = temporalio .converter .WorkflowSerializationContext (
811+ namespace = self ._info .namespace ,
812+ workflow_id = handle ._input .id ,
813+ )
810814 ret_vals = self ._convert_payloads (
811815 [job .result .completed .result ],
812816 ret_types ,
817+ context ,
813818 )
814819 ret = ret_vals [0 ]
815820 handle ._resolve_success (ret )
@@ -2961,8 +2966,15 @@ def _resolve_failure(self, err: BaseException) -> None:
29612966
29622967 def _apply_start_command (self ) -> None :
29632968 # Convert arguments before creating command in case it raises error
2969+ context = temporalio .converter .WorkflowSerializationContext (
2970+ namespace = self ._instance ._info .namespace ,
2971+ workflow_id = self ._input .id ,
2972+ )
2973+ payload_converter = self ._instance ._payload_converter
2974+ if isinstance (payload_converter , temporalio .converter .WithSerializationContext ):
2975+ payload_converter = payload_converter .with_context (context )
29642976 payloads = (
2965- self . _instance . _payload_converter .to_payloads (self ._input .args )
2977+ payload_converter .to_payloads (self ._input .args )
29662978 if self ._input .args
29672979 else None
29682980 )
@@ -2997,9 +3009,7 @@ def _apply_start_command(self) -> None:
29973009 temporalio .common ._apply_headers (self ._input .headers , v .headers )
29983010 if self ._input .memo :
29993011 for k , val in self ._input .memo .items ():
3000- v .memo [k ].CopyFrom (
3001- self ._instance ._payload_converter .to_payloads ([val ])[0 ]
3002- )
3012+ v .memo [k ].CopyFrom (payload_converter .to_payloads ([val ])[0 ])
30033013 if self ._input .search_attributes :
30043014 _encode_search_attributes (
30053015 self ._input .search_attributes , v .search_attributes
@@ -3012,11 +3022,11 @@ def _apply_start_command(self) -> None:
30123022 v .versioning_intent = self ._input .versioning_intent ._to_proto ()
30133023 if self ._input .static_summary :
30143024 command .user_metadata .summary .CopyFrom (
3015- self . _instance . _payload_converter .to_payload (self ._input .static_summary )
3025+ payload_converter .to_payload (self ._input .static_summary )
30163026 )
30173027 if self ._input .static_details :
30183028 command .user_metadata .details .CopyFrom (
3019- self . _instance . _payload_converter .to_payload (self ._input .static_details )
3029+ payload_converter .to_payload (self ._input .static_details )
30203030 )
30213031 if self ._input .priority :
30223032 v .priority .CopyFrom (self ._input .priority ._to_proto ())
0 commit comments