NginxProxyManager / NginxProxyManager/nginx-proxy-manager
Web frontend doesn't return 404 for unknown paths, only 200 Ok
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 34.2k
- Forks
- 3.9k
- Avg merge
- 21h 12m
- Merged PRs (30d)
- 20
Description
Checklist
- Have you pulled and found the error with
jc21/nginx-proxy-manager:latestdocker image?- Yes
- Are you sure you're not using someone else's docker image?
- Yes
- Have you searched for similar issues (both open and closed)?
- Yes
Describe the bug
When the NPM web admin frontend receives an HTTP request for a path that does not exist, it fails to send a 404 Not Found. Instead it send 200 Ok, with what I think is index.html in the response body.
Nginx Proxy Manager Version
v2.14.0
To Reproduce
Steps to reproduce the behavior:
> curl -i https://npm.example.com/NoSuchPath
HTTP/2 200
server: openresty
date: Tue, 02 Jun 2026 22:49:28 GMT
content-type: text/html
content-length: 1451
last-modified: Tue, 17 Feb 2026 05:33:26 GMT
etag: "6993fda6-5ab"
accept-ranges: bytes
x-served-by: npm.example.com
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Nginx Proxy Manager</title>
<meta name="description" content="In The Office Planner" />
[ABRIDGED]
<meta name="theme-color" content="#ffffff" />
<script type="module" crossorigin src="/assets/index-BwxhCj6Q.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-PuE7CNBN.css">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script>
if (global === undefined) {
var global = window;
}
</script>
</body>
</html>
The log entry looks like this:
[02/Jun/2026:18:49:28 -0400] - 200 200 - GET https npm.example.com "/NoSuchPath" [Client 1.2.3.4] [Length 1451] [Gzip -] [Sent-to 127.0.0.1] "curl/7.74.0" "-"
Notice that the log shows a 200 Ok, and that it sent 1451 unnecessary bytes in the response body.
Expected behavior
I expect a request for an unknown path to return a 404 Not found.
Operating System
Docker on linux/amd64
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the request with curl against the web admin frontend and trace how unknown paths are handled. Inspect the frontend routing and Nginx response behavior shown by the request log. Done means an unknown path returns HTTP 404 Not Found instead of index.html with HTTP 200.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, nginx, typescript
- Domain
- frontend, web-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 56/100