Zum Hauptinhalt springen

template_syntax_error

HTTP 422 · code: "template_syntax_error" · type: https://docs.formfeed.dev/errors/template-syntax

Die Vorlage ließ sich nicht kompilieren, also wurde nichts gerendert: Ein Tag ist nicht geschlossen oder falsch geschrieben, eine Klammer fehlt, oder die Syntax gehört zu einer anderen Vorlagensprache. Das Rendering wird als fehlgeschlagen aufgezeichnet und kostet nichts.

location sagt, wo: line und column in dem Teil, der fehlschlug. Dieser Teil kann der Body der Vorlage, die Kopfzeile oder die Fußzeile sein; das Problem sagt nicht, welcher, sehen Sie also in allen dreien nach. Bei einer Word- oder PowerPoint-Vorlage nennt location stattdessen den part der Datei, etwa word/document.xml.

Beispiel​

{
"type": "https://docs.formfeed.dev/errors/template-syntax",
"title": "Template syntax error",
"status": 422,
"detail": "unknown block tag: endfo",
"code": "template_syntax_error",
"location": { "line": 41, "column": 3 },
"render_id": "rnd_7da09ab6cd9946b798c187c2a9350852",
"request_id": "req_4b7c1e9a2f3d4c5b8a6e7f9012"
}

render_id ist vorhanden, wenn ein synchrones Rendering fehlgeschlagen ist; ein asynchrones Rendering behält dieselben Angaben in seinem error (code, message, line, column).

Häufige Ursachen​

  • Ein nicht geschlossener oder falsch geschriebener Block: {% for %} ohne {% endfor %}, {% endfo %}, {{#each}} ohne {{/each}}.
  • Syntax aus einer anderen Sprache, etwa Liquid-Filter | money: "EUR" in einer Jinja2-Vorlage (| money("EUR")).
  • Verirrte {{ oder {% im Text; maskieren Sie sie oder schließen Sie sie in {% raw %}…{% endraw %} ein (Jinja2, Liquid).
  • Ein settings.pdf.metadata.title, eine Kopf- oder Fußzeile mit Vorlagensyntax, die sich nicht kompilieren lässt: Sie werden wie der Body kompiliert.

So beheben Sie es​

  • Gehen Sie zu location.line und location.column. Die Liste Probleme im Editor zeigt dieselbe Meldung und nennt den Tab (Vorlage, Kopf- oder Fußzeile); formfeed validate meldet sie in einem Projekt, bevor Sie pushen.
  • Vergleichen Sie mit der Syntaxtabelle der Vorlagensprache.

Wiederholen?​

Nein. Dieselbe Anfrage erhält dieselbe Antwort. Korrigieren Sie die Vorlage (und veröffentlichen Sie bei einer gespeicherten Vorlage die korrigierte Version), und senden Sie die Anfrage dann mit einem neuen Idempotency-Key oder ohne: Eine 4xx-Antwort wird 24 Stunden unter ihrem Schlüssel gespeichert, der alte Schlüssel liefert also wieder dieses Problem. Siehe Wiederholen.