GET route handler reads the request body
Part of Architecture & Best Practices, which counts for 15% of the overall score. When this check fires it deducts 8 points from that category, once per scan, no matter how many places it turns up.
What it detects
A route registered with .get(...) reads req.body inside its handler. Per the HTTP spec a GET request body has no defined semantics, and in practice many proxies, load balancers, and HTTP clients drop or ignore it, so the value the handler reads can be silently empty in production even though it worked when tested against a client that does send one. Move whatever this depends on into the query string, or change the route to POST if it truly needs a body.
Why it matters
A GET request body has no meaning defined by the HTTP specification, and in practice many proxies, CDNs, load balancers, and HTTP client libraries strip or simply never send a body on a GET request. A handler that reads req.body on a GET route can work perfectly in local testing with a client that happens to send one, then silently receive an empty or undefined body once it passes through infrastructure that does not forward it, producing a bug that only shows up in specific environments.
How to fix it
Move whatever the handler needs out of the body and into the query string (req.query), which is the standard place to pass parameters on a GET request, or change the route to POST if it genuinely needs to send a body (for example a complex search filter that does not fit comfortably in a query string).
The paid report includes a ready-to-paste prompt for your AI coding agent for every check it finds, pointed at the exact findings from your scan. See pricing
Does your repo trip this check?
Paste a GitHub URL or drop a project folder. Scans run in your browser and take seconds.
Scan your repo