-
Notifications
You must be signed in to change notification settings - Fork 597
Description
Issue description
When editing upstream nodes in APISIX Dashboard (adding, removing, or modifying nodes), the pass_host field is automatically reset to the default value "pass", instead of preserving the previously configured value (e.g., "node").
This causes serious issues when the backend is a Kubernetes Ingress or reverse proxy that relies on the Host header for routing - requests fail with 404 Not Found because the wrong Host header is sent.
Environment:
- APISIX version: 3.2.2 LTS
- APISIX Dashboard version: 3.0.1
- etcd version: 3.5.7
Related Issues:
- Discovery Args are droped when edit upstream #3270 (Discovery Args are dropped when edit upstream) - Similar pattern
- Plugin with empty json config is dropped when add or edit Route #3269 (Plugin config is dropped when edit Route) - Similar pattern
Expected behavior
When editing upstream nodes, the pass_host field should retain its previously configured value (e.g., "node"), not be reset to the default value "pass".
How to Reproduce
-
Create an upstream via Admin API or Dashboard with:
- Node:
my-service.my-namespace.svc:80(domain-based) pass_host: "node"
- Node:
-
Verify the upstream works correctly (backend receives proper Host header)
-
Edit the upstream in Dashboard - add or modify a node
-
Save the upstream
-
Check the configuration via Admin API:
curl -s http://127.0.0.1:9180/apisix/admin/upstreams/{id} -H 'X-API-KEY: xxx' -
Observe that
pass_hosthas been reset to"pass"instead of remaining"node"
Screenshots
No response
Environment
- apisix version (cmd:
apisix version): - OS (cmd:
uname -a): - OpenResty / Nginx version (cmd:
nginx -Voropenresty -V): - etcd version, if have (cmd: run
etcd --version): - apisix-dashboard version, if have:
- Browser version, if have:
Additional context
No response