I don't see the problem. Vary seems to be written in such a way that it applies to all responses, not just responses containing entities derived from a resource. This seems to me to be the general case, and allows (but does not require) a server to perform negotiation on all responses including errors. The right thing, IMHO. Am I missing something, or am I confused? - Jim