Werk #22104: REST API: reject rule values in an outdated format when creating or editing rules
| Component | REST API | ||||
| Title | REST API: reject rule values in an outdated format when creating or editing rules | ||||
| Date | Aug 12, 2026 | ||||
| Level | Trivial Change | ||||
| Class | Bug Fix | ||||
| Compatibility | Incompatible - Manual interaction might be required | ||||
| Checkmk versions & editions |
|
When creating or editing a rule via the REST API, Checkmk could store a value
that did not match the value_raw reported in the API response.
During validation the value_raw field is migrated to the current format first
and only then checked. Depending on the ruleset's migration logic, validation
could therefore succeed while the original, unmigrated value was persisted to
disk. Later on, the consuming plugin could stumble over the unmigrated value.
For example, a "Periodic service discovery" rule created this way could send the
"Check_MK Discovery" service into a crash.
The REST API now rejects such requests with an HTTP 400 error instead of silently
migrating the value. Persisting a migrated value would store data the client is
unaware of: unlike the GUI - which renders the migrated value before you save it -
an API client never gets to see the migration, and the value_raw reported back
would no longer match the input.
If you receive an "Outdated value format" error, migrate the affected value_raw
to the current format - for example by opening and saving the rule once in the
GUI, then reading it back via the REST API - and submit the migrated value.