Error messages in Zabbix should follow these guidelines.
Frontend and API
The error message should mention the invalid value that triggered the error. Exceptions are values that can be too long or aren't human-readable such as integer values or boolean flags.
Wording
Messages that state that some action cannot be performed should start with "Cannot". For example:
Cannot delete item.
Messages that state that some value is invalid should use the word "Incorrect". For example:
Incorrect status for item "%itemName%".
Referencing objects
An error was triggered by a specific object it must be mentioned in the message. For example:
Incorrect expression "%expression%" for trigger "%triggerName%".
If an object cannot be uniquely referenced by one name (for example, there can be items with the same name on different hosts) the message must provide a more detailed reference:
Incorrect key "%key%" for item "%itemName%" on host "%hostName%".
When referencing a host or template its visible name must be used.
Server
Zabbix error messages about items (from the agent and other sources) start with "Cannot obtain", for example:
Cannot obtain number of CPUs.
Invalid parameters are denoted just by their placement, without specifying valid suggested/valid values, for example: