You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 16, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Feb 16, 2026. It is now read-only.
Health probes fail when HTTP response does not contain reason phrase #2069
When an HTTP server responds with a valid HTTP status code and no reason phrase a Varnish health probe should consider it valid.
Current Behavior
Some application servers are starting to drop support for the reason phrase in an HTTP response. The spring-boot project is one example: spring-projects/spring-boot#6548. These updates are resulting in failed health probes since the response message does not contain a reason phrase HTTP/1.1 200 vs. HTTP/1.1 200 OK.
Possible Solution
Accept HTTP responses that don't contain a reason phrase as valid as RFC-2616 states that The client is not required to examine or display the Reason- Phrase. I am not sure I agree with this but that is how some projects are interpreting the spec.
Steps to Reproduce (for bugs)
Create a text file with the following markup.
HTTP/1.1 200
Hello World!
Run simple netcat server while true ; do nc -l 80 < test.html ; done
Watch backend health statistics watch 'varnishadm debug.health' and notice the Happy row will have the backend as - rather than H.
Update the text file to include a reason phrase.
HTTP/1.1 200 WOOT
Hello World!
Backend statistics should now be reporting H.
Context
It would seem that some are interpreting the spec as though the reason phrase is not required since the client shouldn't be required to examine it. If things continue to go this direction it will be hard to upgrade components that run behind Varnish and follow this pattern.
Your Environment
Version used: 3.0.7
Operating System and version: Red Hat Enterprise Linux Server release 6.7 (Santiago)
Expected Behavior
When an HTTP server responds with a valid HTTP status code and no reason phrase a Varnish health probe should consider it valid.
Current Behavior
Some application servers are starting to drop support for the reason phrase in an HTTP response. The spring-boot project is one example: spring-projects/spring-boot#6548. These updates are resulting in failed health probes since the response message does not contain a reason phrase
HTTP/1.1 200vs.HTTP/1.1 200 OK.Possible Solution
Accept HTTP responses that don't contain a reason phrase as valid as RFC-2616 states that
The client is not required to examine or display the Reason- Phrase.I am not sure I agree with this but that is how some projects are interpreting the spec.Steps to Reproduce (for bugs)
while true ; do nc -l 80 < test.html ; donewatch 'varnishadm debug.health'and notice the Happy row will have the backend as-rather thanH.H.Context
It would seem that some are interpreting the spec as though the reason phrase is not required since the client shouldn't be required to examine it. If things continue to go this direction it will be hard to upgrade components that run behind Varnish and follow this pattern.
Your Environment