O corpo da requisição é maior do que o servidor aceita.
Quando usar
Uploads acima do limite de tamanho.
Causas comuns e soluções
O corpo é maior do que alguma camada permite, e essa camada muitas vezes não é a sua aplicação. O nginx define client_max_body_size como 1m por padrão, então uploads acima de 1 MB falham com 413 até você aumentá-lo no bloco http, server ou location. A Cloudflare limita os corpos de requisição a 100 MB nos planos Free e Pro, o AWS API Gateway a 10 MB, e os payloads síncronos do Lambda a 6 MB.
Depois, verifique a aplicação: o express.json do Express tem limite padrão de 100kb, e o PHP tem upload_max_filesize (2M por padrão) e post_max_size (8M). Lembre-se de recarregar o nginx ou o PHP-FPM depois de alterar os limites. Para arquivos grandes, faça upload direto para um object storage com URLs pré-assinadas, ou divida os uploads em partes, em vez de aumentar todos os limites ao longo do caminho.
Erro do cliente (4xx)
Os códigos 4xx são erros do cliente: a própria requisição está errada, não está autorizada ou aponta para algo que não existe. Repetir a mesma requisição não vai adiantar.
Como fica
HTTP/1.1 413 Content Too LargeComo enviar
| Node.js / Express | res.status(413).end() |
|---|---|
| Python / Flask | return '', 413 |
| nginx | return 413; |
Como verificar
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/