When configuring the Istio Traffic Routing step with multiple route rules (e.g. a URI prefix and a header match), Harness generates each rule as a separate HTTPMatchRequest entry in the VirtualService YAML. Per the Istio spec, separate entries under match: are evaluated as OR conditions. There is currently no way to combine multiple rules into a single HTTPMatchRequest entry, which Istio would evaluate as AND. This affects the Canary Deployment step, Blue Green Deployment step, and the standalone Traffic Routing step. What Harness currently generates (OR logic): http: - match: - headers: my-header: regex: . some-value. - uri: prefix: /some/path The hyphen before uri: makes it a second list item, Istio treats this as: route if the header matches OR the URI matches. What is needed (AND logic): http: - match: - headers: my-header: regex: . some-value. uri: prefix: /some/path Without the hyphen, uri and headers sit in the same match block, Istio treats this as: route only if the header matches AND the URI matches. Why this matters: When teams need fine-grained traffic control, for example, routing based on both a path and a header simultaneously, OR logic makes it impossible to target a specific subset of traffic accurately. Any request matching just one of the conditions gets routed unintentionally, leading to unpredictable behaviour. Ask: Support AND match logic when multiple route rules are configured, either via a toggle (e.g. "Match All" vs "Match Any") or by grouping rules within a single HTTPMatchRequest. This is needed across the Canary step, Blue Green step, and Traffic Routing step.