Delegate VirtualService not working

We are using Istio 1.7.0 and we are trying to put in place a Delegate VirtualService. I was able to deploy the configuration successfully, but when we make the calls the delegate does not kick in. I added variable “PILOT_ENABLE_VIRTUAL_SERVICE_DELEGATE = true” in istiod deployment.

We are using istiocontrolplane to manage configuration, so I tried adding the variable there, too (we know that defining the variable there overrides istiod configuration). But what happens is that when we add the variable via istiocontrolplane, somehow Jaeger tracing stops working and we cannot see the calls in Jaeger UI (besides, from logs we can see that delegate still does not work).

If I add the variable in both istiocontrolplane and istiod, somehow requests start going into some loops.

Is it possible to help understand why this happens, please?

Below you can find the VirtualService definition where we want to set the delegate. I have “hidden” some values with “dummy” values for security reasons:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: vs-egress-dummy
  namespace: dummy
spec:
  gateways:
  - gw-egress-dummy
  - mesh
  hosts:
  - dummy.host
  http:
  - match:
    - headers:
        x-dummy:
          exact: "true"
      name: dummy.name
      uri:
        prefix: /dummy-path
    delegate:
      name: vs-dummy
      namespace: dummy

Please note that when we change “delegate” with direct routing (with “route” below), the final destination rule is executed correctly and application defined at “dummy.host.destination” is executed successfully.:

route:
- destination:
    host: dummy.host.destination
    port:
      number: 80

Also, VirtualService referenced in the delegate (vs-dummy) works correctly when invoked directly from another application in the mesh.

Kind regards,
Márcio Andrada