@@ -318,8 +318,10 @@ protected InferenceAction.Request mutateInstance(InferenceAction.Request instanc
318318
319319 @ Override
320320 protected InferenceAction .Request mutateInstanceForVersion (InferenceAction .Request instance , TransportVersion version ) {
321+ InferenceAction .Request mutated ;
322+
321323 if (version .before (TransportVersions .V_8_12_0 )) {
322- return new InferenceAction .Request (
324+ mutated = new InferenceAction .Request (
323325 instance .getTaskType (),
324326 instance .getInferenceEntityId (),
325327 null ,
@@ -330,7 +332,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
330332 false
331333 );
332334 } else if (version .before (TransportVersions .V_8_13_0 )) {
333- return new InferenceAction .Request (
335+ mutated = new InferenceAction .Request (
334336 instance .getTaskType (),
335337 instance .getInferenceEntityId (),
336338 null ,
@@ -344,7 +346,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
344346 && (instance .getInputType () == InputType .UNSPECIFIED
345347 || instance .getInputType () == InputType .CLASSIFICATION
346348 || instance .getInputType () == InputType .CLUSTERING )) {
347- return new InferenceAction .Request (
349+ mutated = new InferenceAction .Request (
348350 instance .getTaskType (),
349351 instance .getInferenceEntityId (),
350352 null ,
@@ -356,7 +358,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
356358 );
357359 } else if (version .before (TransportVersions .V_8_13_0 )
358360 && (instance .getInputType () == InputType .CLUSTERING || instance .getInputType () == InputType .CLASSIFICATION )) {
359- return new InferenceAction .Request (
361+ mutated = new InferenceAction .Request (
360362 instance .getTaskType (),
361363 instance .getInferenceEntityId (),
362364 null ,
@@ -367,7 +369,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
367369 false
368370 );
369371 } else if (version .before (TransportVersions .V_8_14_0 )) {
370- return new InferenceAction .Request (
372+ mutated = new InferenceAction .Request (
371373 instance .getTaskType (),
372374 instance .getInferenceEntityId (),
373375 null ,
@@ -379,7 +381,7 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
379381 );
380382 } else if (version .before (TransportVersions .INFERENCE_CONTEXT )
381383 && version .isPatchFrom (TransportVersions .INFERENCE_CONTEXT_8_X ) == false ) {
382- return new InferenceAction .Request (
384+ mutated = new InferenceAction .Request (
383385 instance .getTaskType (),
384386 instance .getInferenceEntityId (),
385387 instance .getQuery (),
@@ -390,9 +392,18 @@ protected InferenceAction.Request mutateInstanceForVersion(InferenceAction.Reque
390392 false ,
391393 InferenceContext .EMPTY_INSTANCE
392394 );
395+ } else {
396+ mutated = instance ;
393397 }
394398
395- return instance ;
399+ // We always assume that a request has been rerouted, if it came from a node without adaptive rate limiting
400+ if (version .before (TransportVersions .INFERENCE_REQUEST_ADAPTIVE_RATE_LIMITING )) {
401+ mutated .setHasBeenRerouted (true );
402+ } else {
403+ mutated .setHasBeenRerouted (instance .hasBeenRerouted ());
404+ }
405+
406+ return mutated ;
396407 }
397408
398409 public void testWriteTo_WhenVersionIsOnAfterUnspecifiedAdded () throws IOException {
0 commit comments