Warnings and Assertions
When configuration problems are detectable in a module, it is a good
idea to write an assertion or warning. Doing so provides clear
feedback to the user and prevents errors after the build.
Although Nix has the abort and
builtins.trace functions to perform such tasks,
they are not ideally suited for NixOS modules. Instead of these
functions, you can declare your warnings and assertions using the
NixOS module system.
Warnings
This is an example of using warnings.
Assertions
This example, extracted from the
syslogd module
shows how to use assertions. Since there
can only be one active syslog daemon at a time, an assertion is useful to
prevent such a broken system from being built.