VS log:
Authorization headers with different values). As per HTTP request processing rules, duplicate headers are treated as invalid.When the issue is reproducible, capture a Virtual Service PCAP at the time of occurrence.
This allows you to inspect the HTTP request directly and verify whether the same header appears multiple times in the request sent by the client.
This approach is useful when you want packet-level confirmation of the client behavior.
Refer this techdoc: VS Pcap
An easier and more definitive method is to collect VS debugs and review the se_debug.INFO file on the impacted Service Engine.
The Service Engine logs explicitly identify duplicate headers and provide:
The header name
The duplicate value
The previously received value
Steps:
Enable debug on Leader Controller
> debug virtualservice <vs-name>
debugvirtualservice> flags flag debug_vs_all
debugvirtualservice:flags> save
debugvirtualservice> save
Reproduce the issue
Wait until the log entry “client sent duplicate header” is observed.
Disable debug
> debug virtualservice <vs-name>
> no flags flag debug_vs_all
> save
Log in to the Service Engine and collect logs
> attach serviceengine <se-name>
sudo -i
grep -i duplicate /opt/avi/log/glog/se_debug*
Outcome:
The SE debug logs will identify the duplicate HTTP header causing the 400 error.
Example from se_debug.INFO:
This log indicates:
The client sent the Authorization header more than once.
The first value was Authorization: Basic token1.
A second Authorization header with value Basic token2 was received, which triggered the error.
The se_debug.INFO file is the most reliable way to confirm duplicate HTTP headers, as it clearly identifies both the header name and conflicting values. If further validation is needed, a VS PCAP can be used to corroborate the client-side behavior.
This information can then be shared with the application team to correct the request formatting at the source.