Is string(JSON) with no ERROR_VARIABLE supposed to exit with a fatal error if an error occurs?

The current behaviour seems to be to issue an error message, but to continue on with the configuration process. The docs state:

If an error occurs but the ERROR_VARIABLE option is not present, a fatal error message is generated. If no error occurs, the <error-variable> will be set to NOTFOUND .

It’s a bit unclear to me whether the current behaviour of not exiting is by design or not. Could a maintainer please clarify?

That sounds like an oversight to me. Could you please file an issue.

Done: https://gitlab.kitware.com/cmake/cmake/-/issues/25072