Skip to content

Web frontend doesn't return 404 for unknown paths, only 200 Ok #5620

@mordyovits

Description

@mordyovits

Checklist

  • Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions