--- title: "411 Length Required — what it means and how to fix it" description: "The server refuses to accept a request body without a Content-Length header. What causes an HTTP 411, what to try as a visitor, and what to check if it is your own site." url: https://atoneplace.net/error/411/ site: "At One Place" --- # HTTP 411 — Length Required **HTTP 411: Length Required** The server refuses to accept a request body without a Content-Length header. ## What 411 actually means The server needs to know up front how many bytes are coming and the client did not say. This usually means the client sent a body using chunked transfer encoding against a server that will not accept it, or omitted `Content-Length` altogether. It is a small, mechanical error — add the header and the request works — and most HTTP libraries set it for you, so it points at hand-rolled requests or an unusual proxy. ## Common causes - A request with a body but no `Content-Length` header - Chunked transfer encoding sent to a server or proxy that requires a known length - A hand-built HTTP request, often in a script or a raw socket client - A streaming upload to an endpoint that will not accept one ## If you're just trying to view the page 1. Nothing you can act on — this is a client-side or tooling problem, not a browser one 2. If a desktop application produced it, check for an update or report it ## If it's your site 1. Set `Content-Length` explicitly, or let your HTTP library compute it by passing a buffer rather than a stream 2. If you need streaming uploads, confirm every proxy in the path supports chunked encoding 3. On the server, accept chunked bodies where you can rather than rejecting them outright ## Reference - **Status code:** 411 - **Reason phrase:** Length Required - **Category:** 4xx — Client Error - **Defined in:** RFC 9110 §15.5.12 ## Common questions ### What does HTTP 411 mean? The server refuses to accept a request body without a Content-Length header. The server needs to know up front how many bytes are coming and the client did not say. This usually means the client sent a body using chunked transfer encoding against a server that will not accept it, or omitted `Content-Length` altogether. ### How do I fix a 411 error? Nothing you can act on — this is a client-side or tooling problem, not a browser one ### Is 411 a client error or a server error? 411 is in the 4xx range, which means client error. The request itself was the problem, so retrying it unchanged will usually return the same code. ## Related pages - [404 Not Found](https://atoneplace.net/error/404/) - [403 Forbidden](https://atoneplace.net/error/403/) - [401 Unauthorized](https://atoneplace.net/error/401/) - [429 Too Many Requests](https://atoneplace.net/error/429/) - [400 Bad Request](https://atoneplace.net/error/400/) - [413 Content Too Large](https://atoneplace.net/error/413/) - [422 Unprocessable Content](https://atoneplace.net/error/422/) - [405 Method Not Allowed](https://atoneplace.net/error/405/) - [409 Conflict](https://atoneplace.net/error/409/) - [415 Unsupported Media Type](https://atoneplace.net/error/415/) - [408 Request Timeout](https://atoneplace.net/error/408/) - [410 Gone](https://atoneplace.net/error/410/) ## Sources - Hypertext Transfer Protocol (HTTP) Status Code Registry — IANA (https://www.iana.org/assignments/http-status-codes/) - RFC 9110: HTTP Semantics — IETF (https://www.rfc-editor.org/rfc/rfc9110.html)