This works for mi (v4.13.5):
in config/middlewares
export default [
"strapi::errors",
"strapi::security",
"strapi::cors",
"strapi::poweredBy",
"strapi::logger",
"strapi::query",
{
name: "strapi::body",
config: {
includeUnparsed: true,
},
},
"strapi::session",
"strapi::favicon",
"strapi::public",
];
and parse the body
const rawBody = ctx.request.body[Symbol.for("unparsedBody")];