Skip to content

404 page in dev server returns 200 status code instead of 404  #11095

@tats-u

Description

@tats-u

Have you read the Contributing Guidelines on issues?

Prerequisites

  • I'm using the latest version of Docusaurus.
  • I have tried the npm run clear or yarn clear command.
  • I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
  • I have tried creating a repro with https://new.docusaurus.io.
  • I have read the console error message carefully (if applicable).

Description

If you try to access to assets that don't exist, they must be 404, but 200 are returned. It makes harder to debug because it is confusing with existing assets.
If you try to load static CSS files in your site, the content of 404 page will be tried to be interpreted as CSS.

Reproducible demo

No response

Steps to reproduce

  1. Create a Docusaurus site
  2. node --run start (Node 22)
  3. Launch your browser
  4. Press F12 to open the Dev tab, then switch to "Network" tab
  5. Open http://localhost:3000/foo/bar/baz/qux/quux or a URL in localhost:3000 where no page exists
  6. Check its status code

Instead of 3–6, you can run curl -I http://localhost:3000/foo/bar/baz/qux/quux.

Expected behavior

Status code is 404

Actual behavior

Status code is 200

Image

$ curl -I http://localhost:3000/foo/bar/baz/qux/quux
HTTP/1.1 200 OK
X-Powered-By: Express
access-control-allow-origin: *
Content-Type: text/html; charset=utf-8
Accept-Ranges: bytes
Content-Length: 2106
ETag: W/"83a-NUMvx01I1roo/HRoilxs0XiYpLg"
Vary: Accept-Encoding
Date: Sun, 20 Apr 2025 14:47:05 GMT
Connection: keep-alive
Keep-Alive: timeout=5

Your environment

  • Public source code:
  • Public site URL:
  • Docusaurus version used: 3.7.0
  • Environment name and version (e.g. Chrome 89, Node.js 16.4): Node 22.13.1
  • Operating system and version (e.g. Ubuntu 20.04.2 LTS): Windows 11

Self-service

  • I'd be willing to fix this bug myself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAn error in the Docusaurus core causing instability or issues with its executionstatus: needs triageThis issue has not been triaged by maintainers

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions