HTTPFault abort filter doesn't work as expected on route typed_per_filter_config

29 views
Skip to first unread message

Austin Guo

unread,
May 30, 2025, 4:40:13 PMMay 30
to envoy-users
Hey Envoy team!

I'm trying to use the abort HTTPFault HTTP filter override configured on an Envoy Route via typed_per_filter_config. For some reason the HTTPFault filter does not work as expected. I see the following behavior:
  • When the Envoy Route does not have a typed_per_filter_config, no requests are aborted as expected.
  • When the Envoy Route has the typed_per_filter_config set at 100% abort, all requests are aborted as expected
  • BUT when the Envoy Route has the typed_per_filter_config set at 50% abort, 99.94% of requests are still aborted. I've tested this with 10k requests multiple times, so I don't think I ran into a statistical anomaly

Is there perhaps a bug with using HTTPFault abort filter via typed_per_filter_config? I'm using Envoy version 7b292c7175692c822148b64005a731eb00365508/1.28.1-dev/Clean/RELEASE/BoringSSL

The configuration I'm using on the route is
```
  "typed_per_filter_config": {
    "envoy.filters.http.fault": {
      "@type": "type.googleapis.com/envoy.extensions.filters.http.fault.v3.HTTPFault",
      "abort": {
        "http_status": 503,
        "percentage": {
          "numerator": 50
        }
      },
      "filter_metadata": {
        "reason": "<redacted>"
      }
    }
  },
```

and I have a corresponding listener filter named envoy.filters.http.fault

```
                          {
                            "name": "envoy.filters.http.fault",
                            "typed_config": {
                              "@type": "type.googleapis.com/envoy.extensions.filters.http.fault.v3.HTTPFault"
                            }
                          },
```

As far as I know, the HTTPFault configuration has the correct schema.

Any help would be much appreciated.

Best,
Austin

Austin Guo

unread,
May 30, 2025, 9:49:30 PMMay 30
to envoy-users
Does this maybe have something to do with client connection reuse? I notice that when I curl the test service directly, I get approximately 50% aborted. but if I use python requests.Session, I get close to 100% aborted.

Austin Guo

unread,
Jun 1, 2025, 10:56:38 PMJun 1
to envoy-users
I've figured out the issue, it was an issue with my own test environment setup. Everything looks correct now. Thanks for all the help!
Reply all
Reply to author
Forward
0 new messages