Have you read the Contributing Guidelines on issues?
Prerequisites
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
- Create a Docusaurus site
node --run start (Node 22)
- Launch your browser
- Press F12 to open the Dev tab, then switch to "Network" tab
- Open http://localhost:3000/foo/bar/baz/qux/quux or a URL in localhost:3000 where no page exists
- 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

$ 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
Have you read the Contributing Guidelines on issues?
Prerequisites
npm run clearoryarn clearcommand.rm -rf node_modules yarn.lock package-lock.jsonand re-installing packages.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
node --run start(Node 22)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
Your environment
Self-service