@@ -416,22 +416,7 @@ impl Workflows {
416416 Err ( e)
417417 if e. metadata ( ) . contains_key ( MESSAGE_TOO_LARGE_KEY ) && attempt < 2 =>
418418 {
419- let failure = Failure {
420- failure : Some (
421- temporalio_common:: protos:: temporal:: api:: failure:: v1:: Failure {
422- message : "GRPC Message too large" . to_string ( ) ,
423- failure_info : Some ( FailureInfo :: ApplicationFailureInfo (
424- ApplicationFailureInfo {
425- r#type : "GrpcMessageTooLarge" . to_string ( ) ,
426- non_retryable : true ,
427- ..Default :: default ( )
428- } ,
429- ) ) ,
430- ..Default :: default ( )
431- } ,
432- ) ,
433- force_cause : 0 ,
434- } ;
419+ let failure = make_grpc_message_too_large_failure ( ) ;
435420 let new_outcome = FailedActivationWFTReport :: Report (
436421 task_token,
437422 WorkflowTaskFailedCause :: GrpcMessageTooLarge ,
@@ -860,22 +845,7 @@ impl Workflows {
860845 }
861846 Err ( e) if e. metadata ( ) . contains_key ( MESSAGE_TOO_LARGE_KEY ) => {
862847 warn ! ( error=%e, "Query response too large, responding with failure" ) ;
863- let failure = Failure {
864- failure : Some (
865- temporalio_common:: protos:: temporal:: api:: failure:: v1:: Failure {
866- message : "GRPC Message too large" . to_string ( ) ,
867- failure_info : Some ( FailureInfo :: ApplicationFailureInfo (
868- ApplicationFailureInfo {
869- r#type : "GrpcMessageTooLarge" . to_string ( ) ,
870- non_retryable : true ,
871- ..Default :: default ( )
872- } ,
873- ) ) ,
874- ..Default :: default ( )
875- } ,
876- ) ,
877- force_cause : 0 ,
878- } ;
848+ let failure = make_grpc_message_too_large_failure ( ) ;
879849 if let Err ( e2) = self
880850 . client
881851 . respond_legacy_query ( tt, LegacyQueryResult :: Failed ( failure) )
@@ -1739,6 +1709,25 @@ fn prepare_to_ship_activation(wfa: &mut WorkflowActivation) {
17391709 } ) ;
17401710}
17411711
1712+ fn make_grpc_message_too_large_failure ( ) -> Failure {
1713+ Failure {
1714+ failure : Some (
1715+ temporalio_common:: protos:: temporal:: api:: failure:: v1:: Failure {
1716+ message : "GRPC Message too large" . to_string ( ) ,
1717+ failure_info : Some ( FailureInfo :: ApplicationFailureInfo (
1718+ ApplicationFailureInfo {
1719+ r#type : "GrpcMessageTooLarge" . to_string ( ) ,
1720+ non_retryable : true ,
1721+ ..Default :: default ( )
1722+ } ,
1723+ ) ) ,
1724+ ..Default :: default ( )
1725+ } ,
1726+ ) ,
1727+ force_cause : WorkflowTaskFailedCause :: GrpcMessageTooLarge as i32 ,
1728+ }
1729+ }
1730+
17421731#[ cfg( test) ]
17431732mod tests {
17441733 use super :: * ;
0 commit comments