-
Type:
Problem report
-
Resolution: Unresolved
-
Priority:
Trivial
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
Steps to reproduce:
- Create a template with an LLD rule (Dependent item type)
- In the LLD rule's LLD macro paths, add a macro with a non-JSONPath value, e.g.:
- LLD macro: {{
{#MY_MACRO}
}}
- Path: 123 (plain number, not starting with $.)
- LLD macro: {{
{#MY_MACRO}
- Link the template to a host
- Wait for LLD discovery to run
- Navigate to Data collection → Hosts → [host] → Discovery
- Click the error icon (red i) next to the affected LLD rule
- Also query the database: SELECT length(error), error FROM item_rtdata r JOIN items i ON r.itemid = i.itemid WHERE i.key_ = '<lld_rule_key>'
Result:
The error message shown in the UI popup is truncated with .. at the end. The database field item_rtdata.error (varchar 2048) contains only 98 characters — the invalid macro name is shown but the invalid path value is not included. It is impossible to determine which path value caused the error without manually inspecting the template configuration.
Example of actual error stored in DB (98 chars): Cannot process LLD macro "{#MY_MACRO}": JSONPath query must start with the root object/element $..
Expected:
Full error message including the invalid path value, e.g.: Cannot process LLD macro "{#MY_MACRO}" with path "123": JSONPath query must start with the root object/element $.
Environment:
- Zabbix Server: 7.4.6
- Zabbix Frontend: 7.4.5
- Database: PostgreSQL 16.11
- Deployment: Docker