Content negotiation response inconsistent with its Content-Type
CONTENT-NEG-002 · v1.0
What it detects
The homepage's response to 'Accept: text/markdown' disagrees with itself — either a markdown-looking body served under a non-markdown Content-Type, or a Content-Type claiming Markdown over a body that isn't.
Why it matters
An agent that trusts the Content-Type header to decide how to parse the response gets the wrong answer whichever way the mismatch runs — it either misses the markdown or mis-parses HTML as markdown.
How to fix
- Send `curl -H "Accept: text/markdown" <homepage>` and compare the `Content-Type` response header against the actual response body. - If the body looks like Markdown (starts with a `#` heading, uses `[text](url)` links) but `Content-Type` doesn't say `text/markdown` or `text/plain`, fix the header to match what you're actually serving. - If `Content-Type` claims `text/markdown` but the body is really HTML (contains `<html`/`<!doctype`), either fix your content-negotiation handler to actually return Markdown for that Accept header, or stop claiming the markdown Content-Type until it does. - Verify: re-run the `curl` command above and confirm the Content-Type header and the actual body format agree.
References
Last reviewed: 2026-09-01 · rule v1.0