I see a 'Template syntax invalid' error — what do I do?
This error means your campaign's message template has a Liquid template syntax error — most commonly a typo in a merge tag like {{company} (one closing brace instead of two) or {{first_name} (same shape).
Why this happens:
Liquid is the merge-tag rendering engine that powers personalization. Every variable reference must be wrapped in EXACTLY two opening braces and two closing braces: {{firstName}}, {{company}}, {{custom.subject_line}}. If you accidentally type one closing brace instead of two, LiquidJS throws a parse error at send time.
Before Apr 30, 2026 (Layer F7), this triggered an infinite retry loop — the engine would catch the error, mark the job 'failed', the orphan reconciler would resurrect the enrollment, and the new job would hit the same parse error. Customer Selva's PIPL Connection campaign had 28 send_message jobs retrying continuously with the same '{{company}' typo until we shipped the dead-letter fix.
After Apr 30, 2026:
- The engine detects the parse-error signature on the first attempt.
- The send_job is marked status='failed' with last_error_classification='template_syntax_error' so the dashboard banner can surface the typo.
- The enrollment is parked with linkedin_status='pending_template_fix' so the orphan reconciler does NOT recreate the job.
- The error message is customer-friendly: 'Template syntax invalid — please fix the template and resume'.
How to fix:
1) Open the affected campaign in the editor.
2) Find every merge-tag reference and verify each one has exactly TWO opening braces and TWO closing braces. Common typos:
• {{firstName} → fix to {{firstName}}
• {firstName}} → fix to {{firstName}}
• { {firstName}} → fix to {{firstName}} (no space between the braces)
• {{firstName | default: 'there'} → fix to {{firstName | default: 'there'}}
3) Click 'Save' on the campaign.
4) Click 'Resume' on the campaign card. Affected prospects retry on the next campaign tick.
5) The dashboard banner clears within 1-2 minutes.
No prospects are lost — they sit in pending_template_fix until you fix the template and resume. No LinkedIn API calls were made on the failed attempts (the parse error fires BEFORE the Unipile call), so there's no rate-limit cost to retrying.
If you're not sure where the typo is, click 'Preview' in the campaign editor — the preview will fail with the exact line number of the parse error.