You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(view): dev error page returns HTTP 200 instead of 5xx #2319
The framework's dev error page (rendered for `Wheels.DataSourceNotFound`, `Wheels.RouteNotFound`, generic exceptions, etc.) is served with HTTP 200. Anything monitoring, caching, retrying, or alerting on status codes is misled into thinking the request succeeded.
Repro
```
$ wheels new blog && cd blog && wheels start
(Trigger any error condition, e.g. visit a route that 404s or fails on a missing datasource)
…with `Wheels.DataSourceNotFound` rendered in the body.
Same for `Wheels.RouteNotFound`, `Wheels.RecordNotFound`, and uncaught Lucee exceptions.
Expected
5xx for framework errors (DataSourceNotFound, uncaught exceptions, internal errors).
404 for RouteNotFound and RecordNotFound.
The framework's own code path even calls `$header(statusCode = 404)` in `vendor/wheels/Global.cfc:2137` (visible in the stack trace of a triggered `RouteNotFound`), so the intent is there. Something downstream is overriding it back to 200.
Likely cause
The dev error page handler probably writes the response body before calling `$header(statusCode = ...)`, and Lucee has already flushed/committed at 200. Or the error page is rendered through a path that doesn't propagate the status code.
Worth checking:
`vendor/wheels/Global.cfc` around line 2137 — confirm the `$header` call lands before any output
Activity
test(test): add post-fix-wave check phases to onboarding harness (#2323)
fix(multiple): three journal-triage fixes (#2316, F17, #2319) (#2350)