Skip to content

Instantly share code, notes, and snippets.

@Maqsim
Last active January 21, 2025 12:10
Show Gist options
  • Save Maqsim/857a14a4909607be13d6810540d1b04f to your computer and use it in GitHub Desktop.
Save Maqsim/857a14a4909607be13d6810540d1b04f to your computer and use it in GitHub Desktop.
HOW TO FIX "413 Payload too large" in NodeJS (Express)
const express = require('express');
const bodyParser = require('body-parser');
...
// Express 4.0
app.use(bodyParser.json({ limit: '10mb' }));
app.use(bodyParser.urlencoded({ extended: true, limit: '10mb' }));
// Express 3.0
app.use(express.json({ limit: '10mb' }));
app.use(express.urlencoded({ limit: '10mb' }));
...
@Rahad23
Copy link

Rahad23 commented Mar 18, 2024

not work :(

error:

413: PAYLOAD_TOO_LARGE
Code: FUNCTION_PAYLOAD_TOO_LARGE

this my code :

app.use(bodyParser.json({ limit: '100mb' }));
app.use(bodyParser.urlencoded({ extended: true, limit: '100mb' }));
app.use(express.json());

How did you solve later?

@Elphaid
Copy link

Elphaid commented Apr 30, 2024

FYI: you have to put those lines before app.use(express.json());

It works

Thank you

@devlopersabbir
Copy link

devlopersabbir commented May 10, 2024

Why it's still says payload is too large??

app.use(bodyParser.json({ limit: "1024mb" }));
app.use(bodyParser.urlencoded({ extended: true, limit: "1024mb" }));
app.use(express.json({ limit: "1024mb" }));

Note: I'm using Quill Rich Editor and uploading images.

@sachinpal293
Copy link

thank u it works properly

@Charmnut
Copy link

not work :(

error:

413: PAYLOAD_TOO_LARGE
Code: FUNCTION_PAYLOAD_TOO_LARGE

this my code :

app.use(bodyParser.json({ limit: '100mb' }));
app.use(bodyParser.urlencoded({ extended: true, limit: '100mb' }));
app.use(express.json());

same issue, trouble me much, anyone know the reason about it?

@rainb3rry
Copy link

goodd

@hitecSmartHome
Copy link

hitecSmartHome commented Jan 21, 2025

⚠️It was bun runtime for me. Replaced bun runtime with node and it works. Could not find any settings for bun regarding this.⚠️

🔴 This was all bun runtime's fault from now on

Well, nothing works for me.
I always got 413 response.
I'm using BUN as runtime, express v4.21.2 and body-parser v1.20.3

Try 1

import express from "express";
import { json, urlencoded } from "body-parser";
// import { json, urlencoded } from "express"; // I have tried this as well

const payloadLimit = 2000 * 1024 * 1024; // 2000 MB in bytes
const appOptions = {
  extended: true,
  limit: payloadLimit,
  parameterLimit: payloadLimit,
};

app.use(express.json());
app.use(json({ ...appOptions }));
app.use(urlencoded({ ...appOptions }));

Try 2

import express from "express";
import { json, urlencoded } from "body-parser";
// import { json, urlencoded } from "express"; // I have tried this as well

const payloadLimit = 2000 * 1024 * 1024; // 2000 MB in bytes
const appOptions = {
  extended: true,
  limit: payloadLimit,
  parameterLimit: payloadLimit,
};

app.use(json({ ...appOptions }));
app.use(urlencoded({ ...appOptions }));
app.use(express.json());

Try 3

import express from "express";
import { json, urlencoded } from "body-parser";
// import { json, urlencoded } from "express"; // I have tried this as well

const payloadLimit = 2000 * 1024 * 1024; // 2000 MB in bytes
const appOptions = {
  extended: true,
  limit: payloadLimit,
  parameterLimit: payloadLimit,
};

app.use(json({ ...appOptions }));
app.use(urlencoded({ ...appOptions }));
app.use(express.json());

Try 4

import express from "express";
// import { json, urlencoded } from "body-parser";  // I have tried this as well
import { json, urlencoded } from "express";

const payloadLimit = 2000 * 1024 * 1024; // 2000 MB in bytes
const appOptions = {
  extended: true,
  limit: payloadLimit,
  parameterLimit: payloadLimit,
};

app.use(json({ ...appOptions }));
app.use(urlencoded({ ...appOptions }));
app.use(express.json());

Try 5

import express from "express";
// import { json, urlencoded } from "body-parser";  // I have tried this as well
import { json, urlencoded } from "express";

const payloadLimit = 2000 * 1024 * 1024; // 2000 MB in bytes
const appOptions = {
  extended: true,
  limit: payloadLimit,
  parameterLimit: payloadLimit,
};

app.use(express.json());
app.use(json({ ...appOptions }));
app.use(urlencoded({ ...appOptions }));

It's just don't want to work. It works on localhost but not on server.
The proxy maintainer said that it is my app's fault.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment