-
Notifications
You must be signed in to change notification settings - Fork 709
Description
Description:
What issue is being seen? Describe what should be happening instead of
the bug, for example: The expected value isn't returned, etc.
If an HTTPRoute rule references an HTTPRouteFilter that does not exist, all rules return a 404.
Repro steps:
Include sample requests, environment, etc. All data and inputs
required to reproduce the bug.
Set up an HTTPRoute like so, so that it returns a 200 (I used the quickstart).
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
spec:
hostnames:
- www.example.com
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: eg
rules:
- backendRefs:
- group: ""
kind: Service
name: backend
port: 3000
weight: 1
matches:
- path:
type: PathPrefix
value: /
curl -i --header "Host: www.example.com" http://localhost:8888/get should return a 200.
Add another rule that references an HTTPRouteFilter that does not exist:
- backendRefs:
- group: ""
kind: Service
name: backend
port: 3000
weight: 1
filters:
- extensionRef:
group: gateway.envoyproxy.io
kind: HTTPRouteFilter
name: does-not-exist
type: ExtensionRef
matches:
- path:
type: PathPrefix
value: /test/
name: test-missing-http-route-filter
After adding this, requests that originally returned successfully now return a 404. The previous curl command is now returning a 404.
I would expect the /test/ path to return a 500, and anything else to return successfully.
Note: If there are privacy concerns, sanitize the data prior to
sharing.
Environment:
Include the environment like gateway version, envoy version and so on.
Envoy Gateway v1.6.0 running in local minikube env
Logs:
Include the access logs and the Envoy logs.
2025-11-17T17:55:58.046Z ERROR provider kubernetes/routes.go:286 bypassing filter rule {"runner": "provider", "index": 0, "error": "filter not found: failed to get HTTPRouteFilter: HTTPRouteFilter.gateway.envoyproxy.io \"does-not-exist\" not found"}
2025-11-17T17:55:58.050Z INFO gateway-api gatewayapi/filters.go:1076 returning 500 response due to unresolved HTTP filter {"runner": "gateway-api"}