Skip to content
Template Rendering Errors

Template Rendering Errors

Blank pages in preview or export

If a page appears blank in the preview or PDF export, the most common cause is a LiquidJS syntax error in that page's content. Open the template designer and check for:

  • Unclosed tags: {% if ... %} without a matching {% endif %}
  • Unclosed loops: {% for ... %} without {% endfor %}
  • Typos in variable names (e.g. report.titl instead of report.title)

Use the LiquidJS Expression Tester in the Preview tab to test individual expressions and pinpoint the error.

Variables showing as empty

If a variable like {{ report.title }} renders as empty text:

  • Make sure the report has a value for that field. An empty field produces empty output.
  • Check the variable name against the Variables reference. Variable names are case-sensitive.
  • For custom variables, verify the key in the template matches what you are using in the template content.
  • For vulnerability fields, make sure the finding has data in that field.

Loop not generating rows

If a {% for vuln in vulnerabilities %} loop produces no output:

  • Check that the report actually has findings. An empty findings list produces no loop iterations.
  • Verify the loop syntax is correct. The loop variable (e.g. vuln) must match what you use inside the loop body.
  • If using filters like sort_by or where, make sure the field name exists.

Images not showing in export

If images appear in the editor but are missing from the PDF export:

  • Check that the image was uploaded through Vulnotes (not hotlinked from an external URL)
  • Very large images may cause the PDF renderer to time out. Try reducing the image dimensions.
  • For template design element images using LiquidJS sources (like {{ client.logo }}), verify the variable resolves to a valid image URL in the expression tester.

Page breaks not working

Page breaks in the template designer control where pages split. If they are not working as expected:

  • Make sure the page break element is placed between content blocks, not inside a table or loop
  • Check that the page break is on the correct page in the multi-page structure