306 (Unused)
Reserved. Defined in a draft as Switch Proxy, never standardized, and now permanently unused.
Status
HTTP/1.1 306 (Unused)
Details
- Category: 3xx
- Status: Reserved. Reserved in the registry and not usable as a real response.
- Specification: RFC 9110 §15.4.7
- Cacheable: Not cacheable
- Response body: Must not be sent
- Retry: Do not retry
306 appeared in an early HTTP/1.1 draft under the name Switch Proxy, meaning that subsequent requests should use the specified proxy. It was removed before the specification was finalized.
The number stays reserved so it can never be reassigned, which keeps old implementations that might mishandle it from causing trouble. A response with 306 on the wire is a bug or a deliberately crafted packet.
Common causes
- A broken or hand-rolled HTTP implementation emitting a reserved code.
- A test harness or fuzzer exercising unusual status handling.
How to fix it
As the client
- Treat it as an unknown 3xx, which per RFC 9110 means treat it as 300 and do not follow anything automatically.
As the server
- Never generate it. Pick a defined code that matches the intent.
Examples
HTTP/1.1 306 (Unused)