@@ -388,8 +388,10 @@ protected InferenceAction.Request mutateInstance(InferenceAction.Request instanc
388388
389389 @ Override
390390 protected InferenceAction .Request mutateInstanceForVersion (InferenceAction .Request instance , TransportVersion version ) {
391+ InferenceAction .Request mutated ;
392+
391393 if (version .before (TransportVersions .V_8_12_0 )) {
392- return new InferenceAction .Request (
394+ mutated = new InferenceAction .Request (
393395 instance .getTaskType (),
394396 instance .getInferenceEntityId (),
395397 null ,
@@ -400,7 +402,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
400402 false
401403 );
402404 } else if (version .before (TransportVersions .V_8_13_0 )) {
403- return new InferenceAction .Request (
405+ mutated = new InferenceAction .Request (
404406 instance .getTaskType (),
405407 instance .getInferenceEntityId (),
406408 null ,
@@ -414,7 +416,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
414416 && (instance .getInputType () == InputType .UNSPECIFIED
415417 || instance .getInputType () == InputType .CLASSIFICATION
416418 || instance .getInputType () == InputType .CLUSTERING )) {
417- return new InferenceAction .Request (
419+ mutated = new InferenceAction .Request (
418420 instance .getTaskType (),
419421 instance .getInferenceEntityId (),
420422 null ,
@@ -426,7 +428,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
426428 );
427429 } else if (version .before (TransportVersions .V_8_13_0 )
428430 && (instance .getInputType () == InputType .CLUSTERING || instance .getInputType () == InputType .CLASSIFICATION )) {
429- return new InferenceAction .Request (
431+ mutated = new InferenceAction .Request (
430432 instance .getTaskType (),
431433 instance .getInferenceEntityId (),
432434 null ,
@@ -437,7 +439,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
437439 false
438440 );
439441 } else if (version .before (TransportVersions .V_8_14_0 )) {
440- return new InferenceAction .Request (
442+ mutated = new InferenceAction .Request (
441443 instance .getTaskType (),
442444 instance .getInferenceEntityId (),
443445 null ,
@@ -449,7 +451,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
449451 );
450452 } else if (version .before (TransportVersions .INFERENCE_CONTEXT )
451453 && version .isPatchFrom (TransportVersions .INFERENCE_CONTEXT_8_X ) == false ) {
452- return new InferenceAction .Request (
454+ mutated = new InferenceAction .Request (
453455 instance .getTaskType (),
454456 instance .getInferenceEntityId (),
455457 instance .getQuery (),
@@ -460,9 +462,18 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
460462 false ,
461463 InferenceContext .EMPTY_INSTANCE
462464 );
465+ } else {
466+ mutated = instance ;
463467 }
464468
465- return instance ;
469+ // We always assume that a request has been rerouted, if it came from a node without adaptive rate limiting
470+ if (version .before (TransportVersions .INFERENCE_REQUEST_ADAPTIVE_RATE_LIMITING )) {
471+ mutated .setHasBeenRerouted (true );
472+ } else {
473+ mutated .setHasBeenRerouted (instance .hasBeenRerouted ());
474+ }
475+
476+ return mutated ;
466477 }
467478
468479 public void testWriteTo_WhenVersionIsOnAfterUnspecifiedAdded () throws IOException {
0 commit comments