<p>I have a couple of microservices, customer-service and customer-rating-service. The first one invokes the latter.</p>

<p>I have placed a circuit breaker on invocations to customer-rating-service, and forced this service to always throw a 5xx error to validate the circuit breaker. However customer-service always calls it, apparently the circuit is never open.</p>

<p><strong>customer-rating-service - Istio Virtual Service</strong></p>

<pre><code>...
spec:
  hosts:
    - customer-rating-service
  gateways: ~
  http:
    - route:
        - destination:
            host: customer-rating-service
            subset: v1
</code></pre>

<p><strong>customer-rating-service - Istio Destination Rule</strong></p>

<pre><code>...
spec:
  host: customer-rating-service
  trafficPolicy:
    outlierDetection:
      baseEjectionTime: 30s
      consecutiveErrors: 1
      maxEjectionPercent: 100
      minHealthPercent: 0
    tls:
      mode: ISTIO_MUTUAL
  subsets:
    - labels:
        version: v1
      name: v1
</code></pre>

<p>As you can see I have set <code>consecutiveErrors: 1</code> so after the first invocation from customer-service to customer-rating-service, since this returns a 5xx error (I've tried throwing different errors 500, 502, 503...), the circuit should open. However every subsequent invocation reaches the customer-rating-service. Where is the problem?</p>

<p>NOTICE: there's only one instance of each service. </p>

codependent
<p>This feature works in Istio 1.3 (but not in 1.2). See the issue I raised at <a href="https://github.com/istio/api/issues/1068" rel="nofollow noreferrer">https://github.com/istio/api/issues/1068</a></p>
