Werk #22313: Errors now return the correct HTTP status code
| Component | User interface | ||||
| Title | Errors now return the correct HTTP status code | ||||
| Date | Aug 31, 2026 | ||||
| Level | Prominent Change | ||||
| Class | Bug Fix | ||||
| Compatibility | Compatible - no manual interaction needed | ||||
| Checkmk versions & editions |
|
Previously, when a request to Checkmk failed -- due to a timeout, invalid input, missing permissions, an unknown page, and so on -- the HTTP response still carried status 200 OK, with only the error message in the body indicating something went wrong. A caller that checks the status code rather than parsing the body had no way to detect the failure.
This mattered most for machine-readable output formats, such as downloading a CSV export from a view via output_format=csv_export in a script.
Failing requests now return the status code that matches the actual failure -- for example 503 Service Unavailable for a timeout, 400 Bad Request for invalid input, 401 Unauthorized for missing authentication, or 404 Not Found for an unknown page -- instead of always 200.
If you have automation or scripts calling into Checkmk that only check for a 200 status to judge success, review them: a failure that used to pass silently will now correctly surface as a non-2xx response.