facebook / facebook/docusaurus
404 page in dev server returns 200 status code instead of 404
- Dominant language
- TypeScript
- Stars
- 66.2k
- Forks
- 10k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 52
Description
### Have you read the Contributing Guidelines on issues?
- [x] I have read the [Contributing Guidelines on issues](https://github.com/facebook/docusaurus/blob/main/CONTRIBUTING.md#issues).
### Prerequisites
- [x] I'm using the latest version of Docusaurus.
- [x] I have tried the `npm run clear` or `yarn clear` command.
- [x] I have tried `rm -rf node_modules yarn.lock package-lock.json` and re-installing packages.
- [x] I have tried creating a repro with https://new.docusaurus.io.
- [x] 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

```
$ 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.
Contributor guide
Assessment
This issue has not been assessed yet.